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 funktioniert bei bestimmten Dateien nicht


6 replies to this topic

ts1

ts1
  • Full Members
  • 81 posts

Posted 05 October 2009 - 14:13

Hallo,

ein Basic-MSI Projekt soll gepatcht werden.
Seltsamerweise werden einige Dateien nicht gepatcht, obwohl binär unterschiedlich.
Als ein Beispiel die "normal.ddb"

In der Patch Modified Files List ist die Datei noch drin,
bei Action InstallFiles nur noch in der Liste aber nicht beim caching,
bei PatchFiles fehlt sie ganz

Auszug aus der patch.log:

...
MSI (s) (E0:D0) [14:56:51:775]: Patch Modified Files List:
MSI (s) (E0:D0) [14:56:51:775]: File = filedialog.dll: Final State = Install
MSI (s) (E0:D0) [14:56:51:775]: File = sse.vif: Final State = Install
MSI (s) (E0:D0) [14:56:51:775]: File = printerdialogs.dll: Final State = Install
MSI (s) (E0:D0) [14:56:51:775]: File = sse.exe: Final State = Install
MSI (s) (E0:D0) [14:56:51:775]: File = assist.htb: Final State = Install
MSI (s) (E0:D0) [14:56:51:775]: File = contexthelp.htb: Final State = Install
MSI (s) (E0:D0) [14:56:51:775]: File = colordefs.ini: Final State = Install
MSI (s) (E0:D0) [14:56:51:775]: File = sse.csf: Final State = Install
MSI (s) (E0:D0) [14:56:51:775]: File = support.ini: Final State = Install
MSI (s) (E0:D0) [14:56:51:775]: File = sysinfo.csf: Final State = Install
MSI (s) (E0:D0) [14:56:51:775]: File = normal.ddb: Final State = Install
...
Aktion gestartet um 14:56:53: InstallFiles.
MSI (s) (E0:D0) [14:56:53:056]: Patch Modified Files List:
MSI (s) (E0:D0) [14:56:53:056]: File = filedialog.dll: Final State = Install
MSI (s) (E0:D0) [14:56:53:056]: File = sse.vif: Final State = Install
MSI (s) (E0:D0) [14:56:53:056]: File = printerdialogs.dll: Final State = Install
MSI (s) (E0:D0) [14:56:53:056]: File = sse.exe: Final State = Install
MSI (s) (E0:D0) [14:56:53:056]: File = assist.htb: Final State = Install
MSI (s) (E0:D0) [14:56:53:056]: File = contexthelp.htb: Final State = Install
MSI (s) (E0:D0) [14:56:53:056]: File = colordefs.ini: Final State = Install
MSI (s) (E0:D0) [14:56:53:056]: File = sse.csf: Final State = Install
MSI (s) (E0:D0) [14:56:53:056]: File = support.ini: Final State = Install
MSI (s) (E0:D0) [14:56:53:056]: File = sysinfo.csf: Final State = Install
MSI (s) (E0:D0) [14:56:53:056]: File = normal.ddb: Final State = Install
MSI (s) (E0:D0) [14:56:53:103]: Note: 1: 2205 2: 3: MsiPatchOldAssemblyFile
MSI (s) (E0:D0) [14:56:53:103]: Note: 1: 2228 2: 3: MsiPatchOldAssemblyFile 4: SELECT `MsiPatchOldAssemblyFile`.`Assembly_` FROM `MsiPatchOldAssemblyFile` WHERE `MsiPatchOldAssemblyFile`.`File_` = ?
MSI (s) (E0:D0) [14:56:53:103]: Caching assist.htb from C:\Programme\BILDSteuer\2010\Help\Assist.htb for baseline 0
MSI (s) (E0:D0) [14:56:53:103]: Caching contexthelp.htb from C:\Programme\BILDSteuer\2010\Help\ContextHelp.htb for baseline 0
MSI (s) (E0:D0) [14:56:53:118]: Caching filedialog.dll from C:\Programme\BILDSteuer\2010\FileDialog.dll for baseline 0
MSI (s) (E0:D0) [14:56:53:118]: Caching printerdialogs.dll from C:\Programme\BILDSteuer\2010\PrinterDialogs.dll for baseline 0
MSI (s) (E0:D0) [14:56:53:118]: Caching sse.exe from C:\Programme\BILDSteuer\2010\SSE.exe for baseline 0
MSI (s) (E0:D0) [14:56:53:118]: Caching colordefs.ini from C:\Programme\BILDSteuer\2010\ColorDefs.ini for baseline 0
MSI (s) (E0:D0) [14:56:53:118]: Caching sysinfo.csf from C:\Programme\BILDSteuer\2010\SysInfo.csf for baseline 0
MSI (s) (E0:D0) [14:56:53:118]: Caching sse.vif from C:\Programme\BILDSteuer\2010\sse.vif for baseline 0
MSI (s) (E0:D0) [14:56:53:118]: Caching sse.csf from C:\Programme\BILDSteuer\2010\sse.csf for baseline 0
Aktion beendet um 14:56:53: InstallFiles. Rückgabewert 1.
MSI (s) (E0:D0) [14:56:53:118]: Doing action: PatchFiles
Aktion gestartet um 14:56:53: PatchFiles.
MSI (s) (E0:D0) [14:56:53:118]: Caching filedialog.dll from C:\Programme\BILDSteuer\2010\FileDialog.dll for baseline 0
MSI (s) (E0:D0) [14:56:53:118]: Caching printerdialogs.dll from C:\Programme\BILDSteuer\2010\PrinterDialogs.dll for baseline 0
MSI (s) (E0:D0) [14:56:53:118]: Caching sse.exe from C:\Programme\BILDSteuer\2010\SSE.exe for baseline 0
MSI (s) (E0:D0) [14:56:53:118]: Caching assist.htb from C:\Programme\BILDSteuer\2010\Help\Assist.htb for baseline 0
MSI (s) (E0:D0) [14:56:53:118]: Caching contexthelp.htb from C:\Programme\BILDSteuer\2010\Help\ContextHelp.htb for baseline 0
MSI (s) (E0:D0) [14:56:53:118]: Caching colordefs.ini from C:\Programme\BILDSteuer\2010\ColorDefs.ini for baseline 0
MSI (s) (E0:D0) [14:56:53:118]: Caching support.ini from C:\Programme\BILDSteuer\2010\Support.ini for baseline 0
MSI (s) (E0:D0) [14:56:53:118]: Caching sysinfo.csf from C:\Programme\BILDSteuer\2010\SysInfo.csf for baseline 0
Aktion beendet um 14:56:53: PatchFiles. Rückgabewert 1.

Die Datei ist ganz normal explizit aufgenommen (kein dynamic link) und es ist egal, ob sie KeyFile ist oder nicht. Sie unterliegt keinen Installationbedingungen, ist immer dabei.

Wie kann ich das korrigieren?

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 06 October 2009 - 12:35

Und die Datei im Zielverzeichnis hat sich seit der ursprünglichen Installation nicht geändert, d.h. Änderungsdatum nicht neuer als Erstelldatum?

ts1

ts1
  • Full Members
  • 81 posts

Posted 06 October 2009 - 15:09

Doch, Zeitstempel neu und Datei binär geändert. Aber es gibt keine Datei-Version.
Ein Patch mit "emus" statt "omus" erzwingt das richtige Verhalten.

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 07 October 2009 - 17:07

Wenn die vorhandene Datei nicht mehr im Originalzustand ist, wird sie nicht überschrieben. Das ist das korrekte und dokumentierte Verhalten. Das Datum der Datei im Setup spielt keine Rolle. Schau dir mal die Diagramme zu den File Versioning Rules an.

ts1

ts1
  • Full Members
  • 81 posts

Posted 08 October 2009 - 14:57

Die alte Datei war und blieb in ihrem Originalzustand.
Die neue Datei hat neuen Zeitstempel und binäre Unterschiede.
Weder alt noch neu hat eine offizielle Dateiversion.

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 09 October 2009 - 06:42

Ach so. Und der Hash-Wert ist auch in der msi Datei eingetragen (macht InstallShield normalerweise automatisch)? Dann verstehe ich es auch nciht.

ts1

ts1
  • Full Members
  • 81 posts

Posted 09 October 2009 - 08:39

Genau, mit Hashwerten.
Die auch (im Direkt Editor des .msp Unterschiede angezeigt) unterschiedlich sind.