2016-03-25 11 views
0

Ich habe mehrere Dateien im Windows Installer Patch nicht aktualisiert werden. Sie sind dynamisch Link-Dateien, mit Dateihash Änderungen, aber die MsiFileHash Tabelle „file_“ hat für jede Datei geändert, unten ist die gleiche Datei in MisFileHash Tabelle: RTM dateiA: _A0FB2DAA62D356E1B64EA457014BA886 0 543212956 662074909 -1730111711 -2096793600 Patch7 dateiA: _490DC427E0D9E512E96D3E9BF2B317C7 0 -1371102532 -401194406 -232195904 525972747 Vielleicht bewirkt dies das Update Scheitern. Also frage ich, wird eine Möglichkeit, die dynamische Link-Komponente zu zwingen, in Patch zu aktualisieren? DankSo erzwingen Sie eine Dateiaktualisierung in Patch (dynamische Verbindung, unversioniert)

Antwort

0

Ein häufiger Grund dafür ist, dass der Patch Die ausführliche Beschreibung der Patch-Installation würde etwas über SELMGR und die Entfernung von Komponenten sagen, die nicht unterstützt werden. Das Patch-Update würde in adverti gehen sed-Modus und kann nichts aktualisieren. Es wäre nützlich, das ausführliche Protokoll trotzdem zu posten, um zu sehen, ob es einen Eintrag über die Ersetzung von Dateien gibt und ob ein Versuch unternommen wurde, es zu ersetzen und was es sagte (und das nicht vorhanden wäre, wenn die Komponentenregeln fehlerhaft wären).

Das andere Problem ist obskurer, verursacht aber wahrscheinlich Probleme. Der Primärschlüssel der Tabelle MsiFileHash (File_field) hat sich geändert. Dies bedeutet, dass sich auch andere Primärschlüssel im neuen MSI geändert haben. Dies ist relevant:

https://blogs.msdn.microsoft.com/windows_installer_team/2007/03/07/arbitrary-labels-used-as-primary-keys-must-not-be-changed-between-versions/

aber unter dem Strich Zitat von dort kommt es an: „Es ist zwingend notwendig, dass die Primärschlüssel nicht zwischen Versionen des Pakets geändert.“, Und das ist, weil die MSI eine relationale Datenbank ist und Das Ändern von Schlüsseln in verschiedenen Versionen des Produkts führt zu unvorhersehbaren Auswirkungen.

Es gibt keine Hinweise darauf, welches Tool Sie zum Erstellen des Patches verwenden, aber die meisten verursachen normalerweise keines dieser Probleme, da sie den Patch unter Berücksichtigung der Struktur des RTM und der neu erstellten MSI-Datei erstellen .