Udostępnij przez


Instalowanie wielu instancji za pomocą transformacji instancji

Ten temat zawiera wskazówki dotyczące instalowania lub ponownego instalowania instalacji z wieloma instancjami, które wykorzystują przekształcenia instancji.

  • Podczas instalowania nowego wystąpienia z transformacją wystąpienia, dołącz właściwość MSINEWINSTANCE i ustaw MSINEWINSTANCEna 1.
  • Podczas instalacji nowego wystąpienia z przekształceniem wystąpienia, uwzględnij właściwość TRANSFORMS i ustaw pierwsze przekształcenie na liście przekształceń jako to, które zmienia kod produktu. Wszelkie transformacje dostosowania powinny następować po transformacji instancji na początku tej listy.
  • Najprostszym sposobem zainicjowania instalacji konserwacji, a także ponownego zainstalowania wystąpienia, jest powoływanie się na kod produktu tego wystąpienia. W przypadku zainicjowania instalacji konserwacji przy użyciu ścieżki do pakietu, należy również określić kod produktu instancji. W wierszu polecenia użyj opcji /n {Product Code}. Z poziomu kodu lub skryptu użyj właściwości MSIINSTANCEGUID.

W poniższym przykładzie pokazano instalowanie nowego wystąpienia z wiersza polecenia, gdzie transformacja wystąpienia jest poprzedzona dwukropkiem, co oznacza, że transformacja jest osadzona w pakiecie.

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

W poniższym przykładzie pokazano instalowanie nowego wystąpienia przy użyciu MsiInstallProduct.

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

W poniższym przykładzie pokazano instalowanie nowego wystąpienia za pomocą skryptu.

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

Poniższy przykład ponownie instaluje instancję bez odświeżenia pamięci podręcznej pakietu. Wystąpienie jest określane za pomocą jego kodu produktu {00000001-0002-0000-0000-624474736554}.

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

Poniższy przykład instaluje ponownie wystąpienie i ponownie buforuje pakiet z wiersza polecenia. Wystąpienie jest określane przez ścieżkę pakietu. Należy uwzględnić opcję /n {Product Code}, jeśli produkt został pierwotnie zainstalowany z przekształceniem instancji.

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

Poniższy przykład instaluje ponownie wystąpienie i buforuje pakiet przy użyciu MsiInstallProduct. Wystąpienie jest identyfikowane przez ścieżkę pakietu. Użyj właściwości MSIINSTANCEGUID, aby podać kod produktu wystąpienia.

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

Poniższy przykład instaluje ponownie wystąpienie i buforuje pakiet przy użyciu skryptu. Użyj właściwości MSIINSTANCEGUID, aby podać kod produktu wystąpienia.

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"

W poniższym przykładzie pokazano, jak anonsować wystąpienie przy użyciu wiersza polecenia.

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

W poniższym przykładzie pokazano, jak reklamować wystąpienie przy użyciu MsiAdvertiseProductEx.

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

W poniższym przykładzie pokazano, jak zastosować poprawkę do wystąpienia z wiersza polecenia. Wymagane jest uwzględnienie opcji /n {Product Code}, jeśli produkt został pierwotnie zainstalowany z transformacją instancji.

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

W poniższym przykładzie pokazano, jak przy użyciu MsiApplyPatchzastosować poprawkę do instalacji instancji.

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

Aby uzyskać więcej informacji, zobacz Instalowanie wielu wystąpień produktów i poprawek oraz Tworzenie wielu wystąpień za pomocą transformacji wystąpień.