Share via


Installieren mehrerer Instanzen mit Instanztransformationen

Dieses Thema enthält Richtlinien für die Installation oder Neuinstallation einer Installation mit mehreren Instanzen, die Instanztransformationen verwendet.

  • Wenn Sie eine neue Instanz mit einer Instanztransformation installieren, schließen Sie die MSINEWINSTANCE-Eigenschaft ein, und legen Sie MSINEWINSTANCE=1 fest.
  • Wenn Sie eine neue Instanz mit einer Instanztransformation installieren, schließen Sie die TRANSFORMS-Eigenschaft ein, und legen Sie die erste Transformation in der Liste der Transformationen auf die Instanztransformation fest, die den Produktcode ändert. Alle Anpassungstransformationen sollten der Instanztransformation am Anfang dieser Liste folgen.
  • Die einfachste Möglichkeit, eine Wartungsinstallation zu initiieren und eine Instanz neu zu installieren, besteht darin, auf den Produktcode der Instanz zu verweisen. Wenn Sie die Wartungsinstallation mithilfe des Paketpfads initiieren, müssen Sie auch den Produktcode der Instanz angeben. Verwenden Sie in der Befehlszeile die Option „/n {Produktcode}“. Verwenden Sie im Code oder Skript die MSIINSTANCEGUID-Eigenschaft .

Das folgende Beispiel zeigt das Installieren einer neuen Instanz über eine Befehlszeile, in der der Instanztransformation ein Doppelpunkt vorangestellt ist, der angibt, dass die Transformation in das Paket eingebettet ist.

msiexec /I mypackage.msi TRANSFORMS=:instance.mst MSINEWINSTANCE=1 /qb

Das folgende Beispiel zeigt die Installation einer neuen Instanz mithilfe von MsiInstallProduct.

UINT uiStat = MsiInstallProduct(_T("path to mypackage.msi"), _T("TRANSFORMS=:instance.mst MSINEWINSTANCE=1"));

Das folgende Beispiel zeigt die Installation der neuen Instanz aus einem Skript.

Dim Installer As Object
Set Installer = CreateObject("WindowsInstaller.Installer")
Installer.InstallProduct "path to mypackage.msi", "TRANSFORMS=:instance.mst MSINEWINSTANCE=1"

Im folgenden Beispiel wird eine Instanz neu installiert, ohne das Paket erneut zwischenzuspeichern. Die Instanz wird durch ihren Produktcode {00000001-0002-0000-0000-624474736554} bezeichnet.

msiexec /I {00000001-0002-0000-0000-624474736554} REINSTALL=ALL REINSTALLMODE=omus /qb

Im folgenden Beispiel wird eine Instanz neu installiert und das Paket über die Befehlszeile zwischengespeichert. Auf die Instanz wird vom Paketpfad verwiesen. Sie müssen die Option „/n {Produktcode}“ nur einschließen, wenn das Produkt ursprünglich mit einer Instanztransformation installiert wurde.

msiexec /I c:\newpath\mypackage.msi /n {00000001-0002-0000-0000-624474736554} REINSTALL=ALL REINSTALLMODE=vomus /qb

Im folgenden Beispiel wird eine Instanz neu installiert und das Paket mithilfe von MsiInstallProduct zwischengespeichert. Auf die Instanz wird vom Paketpfad verwiesen. Verwenden Sie die MSIINSTANCEGUID-Eigenschaft, um den Produktcode der Instanz bereitzustellen.

UINT uiStat = MsiInstallProduct(_T("path to mypackage.msi"), _T("MSIINSTANCEGUID={00000001-0002-0000-0000-624474736554}  REINSTALL=ALL REINSTALLMODE=vomus"));

Im folgenden Beispiel wird eine Instanz neu installiert und das Paket mithilfe des Skripts zwischengespeichert. Verwenden Sie die MSIINSTANCEGUID-Eigenschaft, um den Produktcode der Instanz bereitzustellen.

Dim Installer As Object
Set Installer = CreateObject("WindowsInstaller.Installer")
Installer.InstallProduct "path to mypackage.msi", "MSIINSTANCEGUID={00000001-0002-0000-0000-624474736554}  REINSTALL=ALL REINSTALLMODE=vomus"

Im folgenden Beispiel wird gezeigt, wie sie eine Instanz über die Befehlszeile ankündigen.

msiexec /jm mypackage.msi /t :instance.mst /c /qb

Im folgenden Beispiel wird gezeigt, wie Sie installieren, um eine Instanz mit MsiAdvertiseProductEx anzukündigen.

UINT uiStat = MsiAdvertiseProductEx(_T("path to mypackage.msi"), NULL, _T(":instance.mst"), 0, 0, MSIADVERTISEOPTIONS_INSTANCE);

Das folgende Beispiel zeigt, wie Sie einen Patch über eine Befehlszeile auf eine Instanz anwenden. Sie müssen die Option „/n {Produktcode}“ nur einschließen, wenn das Produkt ursprünglich mit einer Instanztransformation installiert wurde.

msiexec /p mypatch.msp /n {00000001-0002-0000-0000-624474736554} /qb

Das folgende Beispiel zeigt, wie Sie mithilfe von MsiApplyPatch einen Patch auf eine Instanzinstallation anwenden.

UINT uiStat = MsiApplyPatch(_T("path to mypatch.msp"), _T("{00000001-0002-0000-0000-624474736554}"), INSTALLTYPE_SINGLE_INSTANCE, _T("REINSTALL=ALL REINSTALLMODE=omus"));

Weitere Informationen finden Sie unter Installieren mehrerer Instanzen von Produkten und Patches und Erstellen mehrerer Instanzen mit Instanztransformationen.