2017-11-27 1 views
-1

Ich habe eine MSI, die einen Registrierungsschlüssel hinzufügt, installiert und startet einige Dienste, installiert eine Datei und so weiter. Jetzt müssen Sie eine Datei aktualisieren und eine neue Datei hinzufügen. Ich weiß, dass wir einen Patch erstellen können, indem wir eine Differenz/Transformation erstellen. Aber in meinem zweiten MSI möchte ich nur diese 2 Dateien (die aktualisierte und die neue) und nicht die anderen Dateien, wahrscheinlich wie ein HotFix, einschließen. Ich möchte keinen Patch erstellen. Ich habe versucht, eine separate MSI, aber mit dem gleichen Upgrade-Code, aber mit einer anderen Produkt-ID und einer anderen Version zu erstellen. Dies erzeugt jedoch einen neuen Eintrag in Programme und Funktionen. Bei der Deinstallation dieses neuen MSI wird die neue Datei zwar zurückgesetzt, die geänderte Datei wird jedoch nicht zurückgesetzt (diese Datei wurde ursprünglich von der ersten MSI erstellt und von der zweiten geändert). Zumindest wenn es in der Lage ist, den Zustand während der Deinstallation wiederherzustellen und wiederherzustellen, wäre es großartig gewesen. Die geänderte Datei wird jedoch nicht ordnungsgemäß zurückgesetzt. Hat jemand dieses Szenario erlebt? Wenn ja, haben Sie eine Lösung ohne Patch gefunden? Bitte helfen Sie.Alternative zu WiX Patch

+1

Was sind Ihre * Gründe * für die Vermeidung von Patch, da, wie Sie selbst zu sagen scheinen, es ein idealer Anwendungsfall dafür scheint. Wenn bestimmte technische Einschränkungen bestehen, hilft das Wissen, was sie sind *, andere Vorschläge zu vermeiden, die sich als ungeeignet erweisen. –

+0

Mein Kunde will es so und es gibt einen Grund. Der Patch kann auch andere Änderungen enthalten, an denen er nicht interessiert ist. – Ven

+3

... erstellen Sie dann einen Patch, der nur die vom Client gewünschten Änderungen enthält. –

Antwort

1

Es gibt drei Möglichkeiten, ein installiertes Produkt zu aktualisieren: ein Patch, ein Haupt-Upgrade und ein kleines Upgrade. Obwohl Sie ein neues MSI erstellen können, das einige der Dateien in einem vorhandenen Produkt ersetzt, teilen Sie sie auf die gleiche Weise wie Microsoft Dlls (zum Beispiel) für viele verschiedene Produkte. (Es sei denn, Sie verwenden dieselben Komponenten-IDs und teilen sie ordnungsgemäß. Sie brechen das Produkt daher eher, als es zu aktualisieren.) Daher sehen Sie das Verhalten beim Speichern von Dateien.

Die Idee, dass der Patch enthalten könnte "enthalten andere Änderungen auch die er nicht interessiert ist" sollte kein Problem sein. Sie erstellen den Patch so, dass er nur diese Änderungen enthält. Es enthält nur dann andere Änderungen, wenn Sie sie beim Erstellen des Patches in die MSI-Datei einfügen.

Das Hinzufügen von Dateien während eines Patches kann schwierig sein, da einige Regeln betroffen sind. Am sichersten ist es, wenn Sie neue Dateien hinzufügen.

So sind die choces sind:

  1. Ein Patch, der nur die erforderlichen Updates enthält.

  2. Ein wichtiges Upgrade, das ist die komplette neue MSI-Datei, die das Produkt aktualisiert.

  3. Ein kleines Update, das wiederum ist die komplette neue MSI-Datei mit dem gleichen Produktcode, erhöhte Version, nur kleinere Hotfix Änderungen, installieren Sie mit einem speziellen Befehlszeile, den STALL = ALL REIN = vomus

umfasst

Nur der Patch kann nur die erforderlichen Änderungen enthalten.

+0

Vielen Dank für Ihre ausführliche Antwort, Phil. Aber um einen Patch zu erstellen, brauchen wir die Transformation/Differenz.Also, wenn mein ursprüngliches MSI 100 Dateien hat und das neue MSI nur 3 Dateien, wenn ich eine Transformation mache, werden die 97 verbleibenden Dateien auch nicht in die Transformation gelangen und somit Teil des Patches werden? Bitte hilf mir zu verstehen. – Ven

+0

Sie erstellen ein MSI, das identisch mit dem Original ist, mit allen Dateien, demselben ProductCode, inkrementierter Version und den wenigen aktualisierten Dateien. Der Patch ist der Unterschied zwischen den beiden MSI-Dateien. – PhilDW