none
CD-Programme / Setup RRS feed

  • 질문

  • Hallo Experten,

    erstmal ein gutes neues Jahr für alle...

    Letztes Jahr hatte ich schonmal gefragt, was wird benötigt um ein Programm von CD zu starten bzw. zu installieren. Stefan schrieb mir darauf hin, das zwingend der .Net Framework vorhanden sein muss.

    Jetzt habe ich festgestellt, dass das Framework oft nicht vorhanden ist und entsprechend installiert werden muss. Dies funzt dann naturgemäß nicht mit einem Setupprogramm, was in VB geschrieben wurde. Nun habe ich einen Script in Java geschrieben, was diese Problem löst und vor dem Setup eben den Framework installiert mit einem kleinen Schönheitsfehler.  Mit "dotNetFx40_Full_x86_x64.exe" wird der Framework installiert mit allen "überflüssigen" Bestätigungen, wenn jetzt aber der Framework doch schon installiert ist, kommt die Frage Reparieren oder Entfernen! Ist es möglich dies zu unterbinden, da es für den User nicht nachvollziehbar ist?

    mfg eem monarch

     

     

     

    2012년 1월 7일 토요일 오후 12:09

답변

  • MF,

    so ganz schlau werden ich aus deiner Darstellung nicht.

    Registry-Keys sind jene von Windows (Win32), die kannst du auch aus 'java'  (und jeder anderen, ordentlichen  'Programmiersprache') auslesen, insbesondere auch mit einer C++ App, welche ggf auch unabhängig von einer Laufzeitumgebung ausgeführt werden kann  ('wenn statisch gelinkt').

    Dies ist auch der Grund, warum alle 'seriöse' Setupprogramme mindestens eine kleine C++ App vorgeschaltet haben!
    Etwa Java (von sun/Oracle) löst dieses Problem nicht, sondern 'verlagert' es nur weiter eben auf die Java-Runtime  (IMHO: macht unter Windows alles nur noch viel schlimmer).

    Es gibt absolut keinen anderen Weg, wenn du wirklich ein Setup in VB.NET schreiben willst, dann muss vorab trotzdem irgend ein .NET-unabhängiger Code laufen, der prüft ob .NET schon installiert ist.
    Andernfalls musst du deinen Kunden vorab mitteilen, dass sie .NET selber installieren müssen.


    Die  .NET Runtime  ('Laufzeitumgebung') ist im Prinzip das gleiche (vereinfacht; anderer Begriff) wie das .NET Framework, also umfasst all das was etwa mit jener  dotNetFx40_Full_x86_x64.exe installiert wird.

    PS:
    Ein Setupprogramm muss heute sehr viele System-/Sicherheits-Vorschriften einhalten, was sehr komplex + aufwändig ist.
    Nimm besser etwas fertiges, wie eben das von Visual Studio (Professional+),
    oder neuer WIX (löst VS-Setup demnächst ab!)
    http://de.wikipedia.org/wiki/Windows_Installer_XML

    oder Dritte zB Freeware (unverb, uva)
    http://de.wikipedia.org/wiki/Inno_Setup

    • 답변으로 표시됨 Monarch-Falter 2012년 1월 7일 토요일 오후 4:55
    2012년 1월 7일 토요일 오후 3:45

모든 응답

  • Hallo MF

    zur Vollständigkeit vorab: mit den Visual Studio Versionen Professional oder höher  (aber nicht Express!) lässt sich sehr wohl eine CD-Installationen zusammenstellen, welche die .NET Runtime vorab installiert.

    Dein 'Script'  (warum auch immer in Java, welches ja genauso erst eine Installation vorab braucht!?)
    sollte erst prüfen, ob die .NET Runtime  (in der benötigten Version) nicht schon drauf ist.

    Hier die dazu relevanten Registry Keys:
    http://support.microsoft.com/kb/318785
    http://support.microsoft.com/kb/914135

    2012년 1월 7일 토요일 오후 2:00
  • Servus Thomas,

    das mit dem Registry - Keys habe ich auch schon in Betracht gezogen und das wäre auch eine Lösung, aber das funzt eben nur wenn min. NET 4 Client installiert ist !!!. Was ich jetzt aber nicht verstehe ist, warum das folgendes Setup von MS nicht erkennt, das es bereits installiert ist und nicht mehr installiert werden muss.

    dotNetFx40_Client_x86_x64.exe /passive

    Es stellt zwar fest, das es bereits installiert ist und geht dann autom. in den Repair-Status (was nichts anderes als eine neue Installation ist). 

    Da ich mein eigenes Setup schreibe will (auch um Erfahrung zu sammeln) ist das autom Setup von VB keine Option. Desweiteren werden noch DB Installation mit entsprechenden Selectionsmöglichkeiten benötigt, was in VB-Setup so nicht möglich ist.

    Wahrscheinlich, werde ich aber ein VB-Setup verwenden müssen um die min. Anforderung zu schaffen um mein eigenes Setup laufen zu lassen.

    Ach, und was ist denn NET-Runtime !?!

    mfg eem monarch

    2012년 1월 7일 토요일 오후 2:53
  • MF,

    so ganz schlau werden ich aus deiner Darstellung nicht.

    Registry-Keys sind jene von Windows (Win32), die kannst du auch aus 'java'  (und jeder anderen, ordentlichen  'Programmiersprache') auslesen, insbesondere auch mit einer C++ App, welche ggf auch unabhängig von einer Laufzeitumgebung ausgeführt werden kann  ('wenn statisch gelinkt').

    Dies ist auch der Grund, warum alle 'seriöse' Setupprogramme mindestens eine kleine C++ App vorgeschaltet haben!
    Etwa Java (von sun/Oracle) löst dieses Problem nicht, sondern 'verlagert' es nur weiter eben auf die Java-Runtime  (IMHO: macht unter Windows alles nur noch viel schlimmer).

    Es gibt absolut keinen anderen Weg, wenn du wirklich ein Setup in VB.NET schreiben willst, dann muss vorab trotzdem irgend ein .NET-unabhängiger Code laufen, der prüft ob .NET schon installiert ist.
    Andernfalls musst du deinen Kunden vorab mitteilen, dass sie .NET selber installieren müssen.


    Die  .NET Runtime  ('Laufzeitumgebung') ist im Prinzip das gleiche (vereinfacht; anderer Begriff) wie das .NET Framework, also umfasst all das was etwa mit jener  dotNetFx40_Full_x86_x64.exe installiert wird.

    PS:
    Ein Setupprogramm muss heute sehr viele System-/Sicherheits-Vorschriften einhalten, was sehr komplex + aufwändig ist.
    Nimm besser etwas fertiges, wie eben das von Visual Studio (Professional+),
    oder neuer WIX (löst VS-Setup demnächst ab!)
    http://de.wikipedia.org/wiki/Windows_Installer_XML

    oder Dritte zB Freeware (unverb, uva)
    http://de.wikipedia.org/wiki/Inno_Setup

    • 답변으로 표시됨 Monarch-Falter 2012년 1월 7일 토요일 오후 4:55
    2012년 1월 7일 토요일 오후 3:45