Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Patch Erstellung geht nicht


7 replies to this topic

Bruce Lee

Bruce Lee
  • Members
  • 10 posts

Posted 28 August 2003 - 10:35

ISD 8 SP1 german

Hallo.

Ich bin der Verzweiflung nahe. Seit mehreren Tagen suche ich nach einer Möglichkeit einen Patch für eine Installation zu machen... Bisher vergebens!

Bisherige Schritte:
Version 1.0
1. InstallScript Projekt angelegt.
2. Produktversion = 1.00.0000
3. 2 dlls hinzugefügt
4. Release erstellt:
4.1 CDROM
4.2 uncompressed
4.3 Windows Installer Engine 2.0 für alle Betriebssyteme
4.4 Installer und InstallScript Engine vom Quellmedium installieren
4.5 Größe optimieren ist nicht aktiviert

Version 1.1
1. InstallScript Projekt von Version 1.0 geöffnet.
2. Produktversion = 1.01.0000 geändert
3. Productkey neue GUID gegeben
4. Unter Upgrades einen Eintrag für die Version 1.0 eingetragen (könnte hier der Fehler liegen?)
5. Eine dll geändert
6. Release erstellt:
6.1 CDROM
6.2 uncompressed
6.3 Windows Installer Engine 2.0 für alle Betriebssyteme
6.4 Installer und InstallScript Engine vom Quellmedium installieren
6.5 Größe optimieren ist nicht aktiviert

Jetzt habe ich zwei Versionen, die eigentlich, wenn man die erste installiert und dann die zweite sich aktualisieren müßte...

Nun habe ich mittlerweile das integrierte Patch-Design, den Legacy-Patch Assistenten und den Quickpatch ausprobiert. Von der Benutzerfreundlichkeit ist der Quickpatch aber bisher der beste. Aber funktioniert hat eh keiner.

Quick-Patch:
1. Original .msi Datei der Version 1.0 angegeben
2. Die zu aktuallisierende dll ausgewählt und deren Pfad angegeben
3. erstellt

Resultat:
Er erkennt, dass die Datei sich wirklich geändert hat und erstellt den Patch.
Wenn ich die Update.exe oder die .msp Datei, die in Update.exe enthalten ist ausführe, so bekomme ich den Fehler, dass man diese Datei nicht direkt starten kann und dazu die Setup.exe benötigen würde...
Diese habe ich schon in das Verzeichnis gelegt und alles probiert, aber es passiert nichts.

Ich hoffe Ihr da draußen findet eine Lösung...

Gruß
Bruce Lee

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 28 August 2003 - 12:52

Also wenn der ProductCode geändert wurde handelt es sich um ein Major Upgrade. Der Eintrag unter Upgrades muss entsprechend sein. Übrigens gibt es auch eine Update-Validierung, um Probleme zu erkennen.

Allerdings werden Major Upgrades normalerweise nicht als Patch sondern als Komplett-Paket bereit gestellt.
Allerdings gibt es mit Major Upgrades generell Probleme beim Projekttyp InstallScript MSI.
In der Bugliste hier auf InstallSite gibt es ebenfalls ein paar Einträge, die evtl. weiter helfen.


Bruce Lee

Bruce Lee
  • Members
  • 10 posts

Posted 28 August 2003 - 15:53

Ich habe es jetzt hinbekommen. Bisher war es nur ein Testprojekt. Nun habe ich es mit den echten Dlls gemacht und habe ein neues Problem:

Die Versionsnummer wird ja durch den Quickpatch überprüft. Dieser kann nur die ersten 3 Elemente vergleichen. Die dritte Stelle habe ich nun in VB geändert und die Dll neu erstellt. (Revisionsnummer) die neue Version hat nun die Nummer: 2.03.1000
Das Problem ist, dass in InstallShield stattdessen 2.3.0.1000 steht.

Wieso kommt die Null dazwischen? Ich habe schon alles ausprobiert:
2.03.0001 -> 2.3.0.0001
2.03.0100 -> 2.3.0.0100

Die ersten zwei Elemente kann ich aber nicht ändern, da diese von meiner Anwendung benötigt werden.
Ist dies ein Bug? Wenn ja, wie kann ich ihn umgehen? Ich möchte ungern eine andere Patchvariante auswählen müssen, da diese schon elendig viel Zeit in Anspruch genommen hat...

Gruß
Bruce Lee

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 28 August 2003 - 15:58

Bei der Produkt-Version (Version des Setup-Pakets) werden nur die ersten drei Stellen berücksichtigt.
Bei Dateien werden alle vier Felder berücksichtigt.

Es gibt einen Unterschied zwischen der numerischen Version einer Datei (ein DWORD, wird immer als 4 Felder interpretiert) und dem Versionsstring (der im Prinzip beliebig sein kann, aber meist mehr oder weniger der numerischen Version entspricht). In Visual C++ kann man die beiden getrennt voneinander einstellen. Bei VB weiss ich nicht.

Das Setup verwendet ausschließlich die numerische Version. Windows Explorer zeigt in älteren Windows Versionen den Versions-String, in neueren (ab Windows 2000 soweit ich weiss) dagegen die numerische Version.

Bruce Lee

Bruce Lee
  • Members
  • 10 posts

Posted 29 August 2003 - 07:46

Schön das InstallShield das sollte, aber es kommt dennoch beim Erstellen folgender Fehler:

"ISDEV : warning -6495: Die Version für Datei 'F46312_AuswahlCtrl.dll' unterscheidet sich nur nach dem dritten Element des Versionsstrings. Sie muss sich innerhalb der ersten drei Elemente des Versions-Strings unterscheiden."

Alte Datei -> Neue Datei (Nicht Produktversion)
2.03.0.0 -> 2.3.0.1000

Ich benutze WinNT mit ISD 8.0 SP1 German.
Dll wurde mit VB6.0 erstellt. Dortige Einstellmöglichkeiten einer Versionsnummer:
Haupt-, Neben-, Revisionsnummer
2 | 3 | 1000

Windows Explorer Ausgabe: 2.03.1000
InstallShield Quickpatch Ausgabe: 2.03.0.1000

Wie kann ich die Fehlermeldung denn umgehen?

Bruce Lee

Bruce Lee
  • Members
  • 10 posts

Posted 29 August 2003 - 09:03

OK. Der Fehler liegt wirklich nicht bei InstallShield. Unter VB6 kann man nur die ersten 2 Stellen und die 4. Stelle einer Versionsnummer ändern. Es gibt scheinbar keine Möglichkeit auf die 3. Einfluss zu nehmen.

Gibt es eine Möglichkeit, dass der Quickpatch dennoch ausgeführt werden kann, wenn sich die dlls nur in der 4. Stelle unterscheiden?

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 29 August 2003 - 21:25

Ich glaube, dass diese Warnung nicht zutreffend ist und ignoriert werden kann. Funktioniert der Patch denn (d.h. wird die Datei überschrieben)?

Bruce Lee

Bruce Lee
  • Members
  • 10 posts

Posted 08 September 2003 - 09:24

Ich habe jetzt ein funktionierendes Quickpatch Projekt:

Ich habe die Warnung ignoriert. Der Patch läuft durch und es scheint alles zu funktionieren. Aber es gibt immer noch eine Ungereimtheit:

sad.gif Wenn die Version schon existiert, oder gar keine Version installiert ist, so dürfte das Update / Patch ja nicht durchgeführt werden und eine Meldung sollte kommen.

Ersteres geht, aber es erscheint nur der allzeit beliebte 1628 Fehler. Die WindowsInstaller Meldung die in Wirklichkeit kommen sollte wird nicht angezeigt. (Darf gepatcht werden, so läuft das Update ohne Probleme.)

Ist es ein Bug, den man umgehen kann?