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


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

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

  • При установке нового экземпляра с преобразованием экземпляра включите свойство 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"));

Для получения дополнительной информации см. в установке нескольких экземпляров продуктов и патчей и создании нескольких экземпляров с использованием преобразований экземпляров.