Partilhar via


Instalando várias instâncias com transformações de instância

Este tópico fornece diretrizes para instalar ou reinstalar uma instalação de várias instâncias que usa transformações de instância.

  • Ao instalar uma nova instância com uma transformação de instância, inclua a propriedade MSINEWINSTANCE e defina MSINEWINSTANCE=1.
  • Ao instalar uma nova instância com uma transformação de instância, inclua a propriedade TRANSFORMS e defina a primeira transformação na lista de transformações para a transformação de instância que altera o código do produto. Todas as transformações de personalização devem seguir a transformação de instância no início desta lista.
  • A maneira mais fácil de iniciar uma instalação de manutenção e reinstalar uma instância é fazer referência ao código do produto da instância. Se você iniciar a instalação de manutenção usando o caminho do pacote, também deverá especificar o código do produto da instância. Na linha de comando, use a opção /n {Product Code}. A partir de código ou script, use a propriedade MSIINSTANCEGUID.

O exemplo a seguir mostra a instalação de uma nova instância via linha de comando, onde a transformação da instância é prefixada por um dois-pontos, especificando que a transformação está incorporada no pacote.

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

O exemplo a seguir mostra a instalação de uma nova instância usando MsiInstallProduct.

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

O exemplo a seguir mostra a instalação da nova instância a partir do script.

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

O exemplo a seguir reinstala uma instância sem rearmazenar o pacote em cache. A instância é referida pelo seu código de produto {00000001-0002-0000-0000-624474736554}.

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

O exemplo a seguir reinstala uma instância e armazena novamente o pacote em cache a partir da linha de comando. A instância é referida pelo caminho do pacote. Só é necessário incluir a opção /n {Product Code} se o produto estiver originalmente instalado com uma transformação de instância.

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

O exemplo a seguir reinstala uma instância e armazena em cache o pacote usando MsiInstallProduct. A instância é referida pelo caminho do pacote. Use a propriedade MSIINSTANCEGUID para indicar o código do produto da instância.

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

O exemplo a seguir reinstala uma instância e armazena em cache o pacote usando script. Use a propriedade MSIINSTANCEGUID para fornecer o código do produto da instância.

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"

O exemplo a seguir mostra como anunciar uma instância usando a linha de comando.

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

O exemplo a seguir mostra como instalar para anunciar uma instância usando MsiAdvertiseProductEx.

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

O exemplo a seguir mostra como aplicar um patch a uma instância a partir de uma linha de comando. Só é necessário incluir a opção /n {Product Code} se o produto tiver sido originalmente instalado com uma transformação de instância.

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

O exemplo a seguir mostra como aplicar um patch a uma instalação de instância usando MsiApplyPatch.

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

Para obter mais informações, consulte Instalação de várias instâncias de produtos e patches e Criação de várias instâncias com transformações de instância.