Поделиться через


Установка нескольких экземпляров с помощью преобразований экземпляров

В этом разделе приведены рекомендации по установке или переустановке установки нескольких экземпляров, использующего преобразования экземпляров.

  • При установке нового экземпляра с преобразованием экземпляра включите свойство MSINEWINSTANCE и задайте MSINEWINSTANCE=1.
  • При установке нового экземпляра с преобразованием экземпляра включите свойство TRANSFORMS и задайте первое преобразование в списке преобразований для преобразования экземпляра, изменяющего код продукта. Все преобразования настройки должны следовать за преобразованием экземпляра в начале этого списка.
  • Самый простой способ инициировать установку обслуживания и переустановить экземпляр — сослаться на код продукта экземпляра. Если вы инициируете установку обслуживания, используя путь к пакету, необходимо также указать код продукта экземпляра. В командной строке используйте параметр /n {Код продукта}. В коде или скрипте используйте свойство 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 {Код продукта} необходимо включить только в том случае, если продукт изначально установлен с преобразованием экземпляра.

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 {Код продукта} необходимо включить только в том случае, если продукт изначально был установлен с преобразованием экземпляра.

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"));

Дополнительные сведения см. в разделах Установка нескольких экземпляров продуктов и исправлений и Создание нескольких экземпляров с помощью преобразований экземпляров.