2017-11-03 1 views
0

liefern Schritt 1: Ich habe eine aktualisierte MSI, die eine neue Textdatei hat: env.info ein MSP daraus erzeugt diese Textdatei in der Mappe.Können wir eine aktualisierte Textdatei (jede nicht versionierte Datei) in einem MSP

Schritt 2: Ich habe diese Textdatei aktualisiert und ein MSP erneut generiert, jetzt ersetzt diese MSP die neue Datei nicht.

Eine Idee, wie Sie mit nicht versionierten Dateien in einem MSP umgehen?

+0

genau, was kann ich tun, um diese Datei im installierten Ordner (mit einem MSP) bei jeder Änderung zu ersetzen – MPK

+0

Werfen Sie einen Blick auf die REINSTALLMODE-Eigenschaft auf der folgenden Seite: https://msdn.microsoft.com /en-us/library/windows/desktop/aa371182(v=vs.85).aspx –

Antwort

0

Das Problem ist sehr wahrscheinlich, dass die Überschreibungsregeln verbieten ersetzt nicht versioniert Dateien, die seit dem aktualisiert wurden installieren:

https://msdn.microsoft.com/en-us/library/windows/desktop/aa370531(v=vs.85).aspx

und Sie können dies überprüfen, ob Sie ein MSI-Protokoll des Patch erzeugen Installieren.

Die sicherste Lösung, wie hier:

https://blogs.msdn.microsoft.com/astebner/2013/05/23/updating-the-last-modified-time-to-prevent-windows-installer-from-updating-an-unversioned-file/

ist es, die Zeiten auf die Datei zu ändern, es ersetzt werden zu lassen. Das liegt daran, dass die andere Lösung darin besteht, den REINSTALLMODE so einzustellen, dass alle Dateien überschrieben werden - dies ist nicht immer der Schreibvorgang, wenn Sie eine Datei mit höherer Version durch eine niedrigere Version ersetzen.

Ein besseres Design für dieses Problem besteht darin, den Schlüsselpfad der Datendatei auf eine versionierte Binärdatei, Companion-Dateien, festzulegen.

+0

können wir der nicht versionierten Datei MsiFileHash hinzufügen und eine msi generieren? Ob das funktioniert? – MPK

+0

meine vorherige Frage ignorieren. aber ich habe eine andere Frage - auf meine ursprüngliche Frage zeigend, setzt mein msp1 diese Datei in seinen Installationsordner, ein msp2 mit der aktualisierten env.info Datei ersetzt die ältere Datei nicht. Ich habe überprüft, dass die msihash für beide Dateien unterschiedlich ist. Reicht dies nicht aus, um die Datei durch den msp2 zu ersetzen? – MPK

+0

Ich möchte die Verwendung von Companion-Datei. Ich recherchierte auf Support-Websites, konnte aber keine – MPK

Verwandte Themen