Share via


使用實例轉換安裝多個實例

本主題提供使用實例轉換的多個實例安裝或重新安裝的指導方針。

  • 使用實例轉換安裝新的實例時,請包含 MSINEWINSTANCE 屬性並設定 MSINEWINSTANCE=1。
  • 使用實例轉換安裝新的實例時,請包含 TRANSFORMS 屬性,並將轉換清單中的第一個轉換設定為變更產品代碼的實例轉換。 任何自訂轉換都應該遵循此清單開頭的實例轉換。
  • 起始維護安裝並重新安裝實例的最簡單方式,就是參考 實例的產品代碼。 如果您使用套件路徑起始維護安裝,您也必須指定 實例的產品代碼。 從命令列,使用 /n {Product Code} 選項。 從程式碼或腳本,使用 MSIINSTANCEGUID 屬性。

下列範例示範從命令列安裝新的實例,其中實例轉換前面加上冒號,指定轉換內嵌在封裝中。

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

下列範例示範如何使用 MsiInstallProduct安裝新的實例。

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

下列範例示範如何從腳本安裝新的實例。

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

下列範例會重新安裝實例,而不重新快取封裝。 實例是由其產品代碼 {00000001-0002-0000-0000-624474736554} 所參考。

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

下列範例會重新安裝 實例,並從命令列重新快取套件。 實例是由封裝路徑所參考。 只有在產品原本隨實例轉換一起安裝時,才需要包含 /n {Product Code} 選項。

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

下列範例會重新安裝 實例,並使用 MsiInstallProduct快取套件。 實例是由封裝路徑所參考。 使用 MSIINSTANCEGUID 屬性來提供 實例的產品代碼。

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

下列範例會重新安裝 實例,並使用腳本快取封裝。 使用 MSIINSTANCEGUID 屬性來提供 實例的產品代碼。

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"

下列範例示範如何使用命令列公告實例。

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

下列範例示範如何使用 MsiAdvertiseProductEx來安裝 來公告實例。

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

下列範例示範如何從命令列將修補程式套用至實例。 如果產品原本是隨實例轉換一起安裝,則只需要包含 /n {Product Code} 選項。

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

下列範例示範如何使用 MsiApplyPatch將修補程式套用至實例安裝。

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

如需詳細資訊,請參閱 安裝多個產品和修補程式實例 ,以及 使用實例轉換撰寫多個實例