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 "verlangt" nach Source! HILFE!!!


9 replies to this topic

herrbecht

herrbecht
  • Full Members
  • 59 posts

Posted 27 January 2005 - 10:12

Hallo

Ich habe folgendes ganz großes Problem:

Meine Patch "verlangt" nach der ursprünglichen MSI-Installation. Das ist der GAU! Bitte helft mir!

EDIT: Der Patch bricht mit Fehler 1706 (Failed to resolve source) ab!

Ich habe eine Version 1 und eine Version 2 meiner Installation erstellt. Die Version 2 ist ein Major Upgrade (habe leider keine andere Wahl), deshalb habe ich auch bei der Version 2.00 ein Major-Upgrade-Element eingefügt und als Einstellung "Setup installieren und danach nicht benötigte Dateien entfernen" gewählt. Außerdem habe ich bei der Erstellung des Mediums als "vorheriges Paket die Version 1 meiner MSI-Datei angegeben. Anschließend erstelle ich einen Patch aus den zwei Versionen.
Wenn man in die Log-Datei des Patches schaut erkennt man, daß der Patch JEDE Datei (auch alle die sich NICHT geändert haben) neu installiert von Source (wenn die Source verfügbar ist) und anschließend halt manche Dateien patched.

Hier ein Bsp aus dem Log von einer Datei die sich NICHT verändert hat und trotzdem von Source neu überschrieben wird:
CODE
[...]
(STATE)       MSI (s) (3C:44): Component: HAF.dll; Installed: Absent; Request: Local; Action: Local
[...]
(SERVER)     MSI (s) (3C:44): Executing op: ComponentRegister(ComponentId={90CF634A-E6BE-11D8-AB23-0050DAC64F84},KeyPath=C:\Program Files\WinAs32_PatchTest2601\HAF.dll,State=3,,Disk=1,SharedDllRefCount=0,BinaryType=0)
(UNKNOWN)     1: {5FA7DD68-AA90-4A0E-8439-BBDE899F0E44} 2: {90CF634A-E6BE-11D8-AB23-0050DAC64F84} 3: C:\Program Files\WinAs32_PatchTest2601\HAF.dll
[...]
(SourceName=HAF.dll,SourceCabKey=haf.dll,DestName=HAF.dll,Attributes=16384,FileSize=454656,PerTick=32768,,VerifyMedia=1,,,,,CheckCRC=0,,,InstallMode=59244544,HashOptions=0,HashPart1=1859419541,HashPart2=-62101674,Has
(UNKNOWN)     hPart3=716139336,HashPart4=119045468,)
(SERVER)     MSI (s) (3C:44): File: C:\Program Files\WinAs32_PatchTest2601\HAF.dll; Overwrite; No patch; Existing file is unversioned and unmodified - hash matches source file
(SERVER)     MSI (s) (3C:44): Source for file 'HAF.dll' is uncompressed, at 'D:\Meine InstallShield-X-Projekte\WinAs MSIVers200 FINAL 16112004\WinAs\Ver100\program files\WinAs\'.
(UNKNOWN)     InstallFiles: File: HAF.dll, Directory: C:\Program Files\WinAs32_PatchTest2601\, Size: 454656
[...]


Wie kann ich das verhindern???

Der Patch soll einfach nur die Dateien patchen die im Patch enthalten sind und nicht alle Dateien von der Source neu "überschreiben"!

Ich habe mir mal den Artikel "How to Apply a Patch Without Source" angesehen und habe eine Frage dazu: In der Installations-Sequenz kommt die Aktion "ResolveSource" vor aber nur in der UI-Sequenz und mit der Bedingung: "Not installed And Not Patch".... kann es trotzdem daran liegen???? Die anderen Bedingungen die in dem Artikel gesnannt sind erfülle ich meines Erachtens.

Könnte es eventuell damit zusammenhängen, daß ich bei der Erstellung der Version 2 dieses oben erwähnte Upgrade-Element mit dieser Einstellung erstellt habe??? Oder muß man ein Upgrade Element bei einem Major-Upgrade machen um die mit Hilfe dieser Version einen Patch zu erstellen????

Bin wirklich für jede Hilfe dankbar!!!!

Edited by herrbecht, 27 January 2005 - 10:39.


ali

ali
  • Full Members
  • 1,008 posts

Posted 27 January 2005 - 14:45

also die Bedingung in Resolve Source müsste heissen
Not (Installed Or PATCH).
wie ist den der REINSTALLMODE für das patch gewählt?



herrbecht

herrbecht
  • Full Members
  • 59 posts

Posted 27 January 2005 - 16:23

Vielen Dank für die Antwort.

Habe jetzt mal testweise die ResolveSource-Aktion ganz rausgelölscht... Leider kann ich im Moment keine Patches erstellen: Wenn ich in der Ansicht Patchdesign meine neue oder alte MSI angebe und InstallShield mich daraufhin fragt, ob es die Installation entpacken soll (weil das Medium komprimiert ist) hängt sich InstallShield JEDES GOTTVERDAMMTE MAL bei der anschließenden Entpackung total auf !!!!! Arrrrg... es ist zum wahnsinnig werden...

Ach...: Mein ReinstallMode ist auf emus gesetzt.

Könnte das denn an der Bedingung von ResolveSource liegen?



ali

ali
  • Full Members
  • 1,008 posts

Posted 27 January 2005 - 16:31

ja das kann daran leigen, ResolveSource wird ja zb im Repair Modus ausgeführt,damit Source PFad gefunden wird um die Programm Dateien zu reparieren. Wenn diese Aktion beim Patch ausgeführt wird, würde hier auch nach der Source gesucht werden, also nach der ursprünglichen MSI Datei.

herrbecht

herrbecht
  • Full Members
  • 59 posts

Posted 27 January 2005 - 16:52

Beim Patch wurde die ResolveSource-Aktion nicht ausgeführt.

Aber bei der Installation der Version 1 (Vollversion) wurde diese Aktion ausgeführt.
Aus Version 1 und Version 2 habe ich dann den Patch erstellt.

Edited by herrbecht, 27 January 2005 - 16:58.


ali

ali
  • Full Members
  • 1,008 posts

Posted 27 January 2005 - 17:49

das meine ich doch, wenn du die Vollversion installierst, dann den Patch hinterher, dann wird ResolveSource ausgeführt, weil in der Vollversion also der VErsion1 der Resolve Source für den Patch nicht weggelassenwurde (Not PATCH fehlt!). Setzt du aber in deiner VErsion1 den ResolveSource auf Not PATCH kompilierst das ganze, und erstellst dann von dieser VErsion einen neuen Patch, dann sollte das gehen.

Edited by ali, 27 January 2005 - 17:50.


herrbecht

herrbecht
  • Full Members
  • 59 posts

Posted 01 February 2005 - 10:26

Leider liegt es nicht an der Aktion ResolveSource...

Ich habe den Fehler gefunden: Es liegt an REINSTALLMODE=emus... bei "omus" funktioniert der Patch bestens... ARRGG

Leider ist das für mich keine Lösung, da die Installation Dateien enthält, die sich inhaltlich ändern, deren Versionsnummer aber nich hochgesetzt wird... und diese Dateien werden bei einem Patch (onwohl sie sich geändert haben!!!) NICHT berücksichtigt... gibt es dafür eine Lösung???

Edited by herrbecht, 01 February 2005 - 10:27.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 02 February 2005 - 09:25

Die saubere Lösung wäre es, die Versionsnummer hochzusetzen. Als Workaround kann man auch in der MSI Datei eine höhere Versionsnummer eintragen als die Datei tatsächlich hat (Rechtsklick auf die Datei in InstallShield, Häkchen bei Systemeinstellung wegnehmen, Versionsnummer manuell eingeben). Das ist zwar nicht ganz sauber, sollte aber funktionieren.

herrbecht

herrbecht
  • Full Members
  • 59 posts

Posted 03 February 2005 - 17:18

Bitte helft mir!!! es ist dringend...

Angenommen alle meine Patches verlangen IMMER nach der "Source" (weil mit REINSTALLMODE=emus ausgeführt) ist es dann eine mögliche Lösung, wenn die ursprüngliche Installation permanent auf dem jeweiligen Rechner liegt???

Funktionieren dann auch die nachfolgenden Patches??? (ich meine, wenn ich nach der ersten Version nur noch) Patches rausgebe (die aber alle IMMER nach der Source verlangen)???

Wenn ein Patch nach der Source verlangt werden ja mache/alle Dateien aus der ursprünlichen Installation (Source) genommen und bestehende Dateien (im Programmverzeichnis) vollständig überschrieben bevor die Dateien gepatched werden. Wenn jetzt mehrere (binäre) Patches hintereinander kommen werden dann immer alle bisherigen Patches (der Reihe nach) durchgeführt wenn die Datei vom Source-Medium überschrieben wurde??? Kann es da zu Problemen kommen???


bin wirklich für jede Hilfe dankbar!!!

Edited by herrbecht, 03 February 2005 - 17:20.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 04 February 2005 - 14:49

Ja, sollte funktionieren.