2017-08-25 7 views
1

Ich habe eine WIX-Bootstrapper-Anwendung erstellt, die zwei MSI-Pakete installiert. Eine davon ist eine einfache Anwendung, die einfach durch Schließen einer bereits laufenden Instanz und ohne Neustart installiert werden kann. Das andere Paket installiert eine Bibliothek, die vom Windows Explorer verwendet werden kann und immer einen Neustart erfordern sollte.WIX-Bootstrapper-Dateien im Verwendungsdialog für mehrere MSI-Pakete

Also, was ich möchte, ist die Dateien in Verwendung Dialog angezeigt werden soll, wenn die einfache Anwendung aktualisiert wird (und läuft natürlich) und erfordern einen Neustart (und nicht Zeige die Dateien im Einsatz Dialogfeld) wenn die Explorer-Bibliothek aktualisiert wird.

Ich versuchte <Property Id="MSIRESTARTMANAGERCONTROL" Value="Disable"/> im MSI-Installer-Projekt Einstellung, die die Explorer-Bibliothek installiert, aber das hatte keine Wirkung.

Ich habe auch versucht RegistrySearch in der Bootstrap-Anwendung, um zu bestimmen, ob die Explorer-Bibliothek aktualisiert werden soll und dann ShowFilesInUse in WixStandardBootstrapperApplication zu auf „ja“ oder „nein“ entsprechend, aber leider kann ich keine Variable liefern als Wert.

Also alles, was ich erreichen kann, ist entweder immer die verwendeten Dateien Dialog für beide MSI-Pakete zeigen oder es gar nicht zu zeigen, und immer ein Neustart erforderlich. Die einzige andere Option, die ich mir vorstellen kann, ist, das MSI-Paket, das die Explorer-Bibliothek installiert, in eine andere Bootstrapper-Anwendung zu packen und dort ShowFilesInUse="no" einzustellen, aber das scheint ein bisschen umständlich ... Gibt es vielleicht eine andere Möglichkeit, dies zu erreichen?

+0

Nur zur Klarstellung: Sie suchen MSI # 1 zeigen die Dateien in Verwendung Dialogfeld, wenn Dateien tatsächlich verwendet werden. Sie suchen nach MSI # 2, um einen Neustart zu erzwingen, wenn die Explorer-Bibliothek aktualisiert wird. Und diese beiden Handlungen sind nicht voneinander abhängig, richtig? – philselmer

+0

Das ist genau das, was ich suche, richtig. –

+1

Versuchen Sie, den Wert DisableShutdown für MSI # 1 zu verwenden, der weiterhin das Dialogfeld "In Verwendung befindliche Dateien" anzeigt, aber verhindert, dass der Neustart-Manager beteiligt ist. Mein Gedanke ist, dass das Verhindern, dass RM in dem ersten MSI verwendet wird, dem zweiten MSI erlauben kann, es erfolgreich zu deaktivieren (mit dem Wert Deaktivieren). – philselmer

Antwort

1

<Property Id="MSIRESTARTMANAGERCONTROL" Value="DisableShutdown"/> zu Ihrem ersten MSI hinzufügen. Dadurch wird der Neustart-Manager deaktiviert, aber das Dialogfeld "In Verwendung befindliche Dateien" kann weiterhin verwendet werden. Verwenden Sie weiterhin <Property Id="MSIRESTARTMANAGERCONTROL" Value="Disable"/> im zweiten MSI. Es scheint, dass sobald RM während einer Installation aktiviert wird, andere Befehle zum Deaktivieren ignoriert werden.

Verwandte Themen