使用實例轉換功能安裝多個實例
本主題提供安裝或重新安裝使用實例轉換之多個實例安裝的指導方針。
- 使用實例轉換安裝新的實例時,請包含 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"));
如需詳細資訊,請參閱 安裝多個產品和修補程式實例 和 使用實例轉換撰寫多個實例。