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. As transformações de personalização devem seguir a transformação da instância do início desta lista.
  • A maneira mais fácil de iniciar uma instalação de manutenção e reinstalar uma instância é referenciar o 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}. No código ou script, use a propriedade MSIINSTANCEGUID.

O exemplo a seguir mostra a instalação de uma nova instância de uma linha de comando em que a transformação da instância é prefixada por dois-pontos que especificam que a transformação está inserida 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 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 armazenar novamente o pacote em cache. A instância é referenciada por 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 em cache o pacote da linha de comando. A instância é referenciada pelo caminho do pacote. Será necessário incluir a opção /n {Product Code} apenas se o produto for 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 é referenciada pelo caminho do pacote. Use a propriedade MSIINSTANCEGUID para fornecer 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 de uma linha de comando. Será necessário incluir a opção /n {Product Code} apenas se o produto foi 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 Instalar várias instâncias de produtos e patches e Criar várias instâncias com transformações de instância.