Installazione di più istanze con trasformazioni di istanza
In questo argomento vengono fornite linee guida per l'installazione o la reinstallazione di un'installazione a più istanze che usa trasformazioni di istanza.
- Quando si installa una nuova istanza con una trasformazione di istanza, includere la proprietà MSINEWINSTANCE e impostare MSINEWINSTANCE=1.
- Quando si installa una nuova istanza con una trasformazione di istanza, includere la proprietà TRANSFORMS e impostare la prima trasformazione nella lista di trasformazioni sulla trasformazione di istanza che modifica il codice prodotto. Tutte le trasformazioni di personalizzazione devono seguire la trasformazione dell'istanza all'inizio di questo elenco.
- Il modo più semplice per avviare un'installazione di manutenzione e reinstallare un'istanza consiste nel fare riferimento al codice prodotto dell'istanza. Se si avvia l'installazione della manutenzione usando il percorso del pacchetto, è necessario specificare anche il codice prodotto dell'istanza. Dalla riga di comando usare l'opzione /n {Product Code}. Dal codice o dallo script, usare la proprietà MSIINSTANCEGUID.
Nell'esempio seguente viene illustrata l'installazione di una nuova istanza da una riga di comando in cui la trasformazione dell'istanza è preceduta da due punti che specifica che la trasformazione è incorporata nel pacchetto.
msiexec /I mypackage.msi TRANSFORMS=:instance.mst MSINEWINSTANCE=1 /qb
Nell'esempio seguente viene illustrata l'installazione di una nuova istanza usando MsiInstallProduct.
UINT uiStat = MsiInstallProduct(_T("path to mypackage.msi"), _T("TRANSFORMS=:instance.mst MSINEWINSTANCE=1"));
Nell'esempio seguente viene illustrata l'installazione della nuova istanza dallo script.
Dim Installer As Object
Set Installer = CreateObject("WindowsInstaller.Installer")
Installer.InstallProduct "path to mypackage.msi", "TRANSFORMS=:instance.mst MSINEWINSTANCE=1"
Nell'esempio seguente viene reinstallato un'istanza senza memorizzare nuovamente il pacchetto nella cache. L'istanza viene indicata dal codice prodotto {00000001-0002-0000-0000-624474736554}.
msiexec /I {00000001-0002-0000-0000-624474736554} REINSTALL=ALL REINSTALLMODE=omus /qb
L'esempio seguente reinstalla un'istanza e memorizza nuovamente nella cache il pacchetto dalla riga di comando. L'istanza è indicata dal percorso del pacchetto. È necessario includere l'opzione /n {Product Code} solo se il prodotto è originariamente installato con una trasformazione dell'istanza.
msiexec /I c:\newpath\mypackage.msi /n {00000001-0002-0000-0000-624474736554} REINSTALL=ALL REINSTALLMODE=vomus /qb
L'esempio seguente reinstalla un'istanza e memorizza nella cache il pacchetto usando MsiInstallProduct. L'istanza viene definita dal percorso del pacchetto. Usare la proprietà MSIINSTANCEGUID per fornire il codice prodotto dell'istanza.
UINT uiStat = MsiInstallProduct(_T("path to mypackage.msi"), _T("MSIINSTANCEGUID={00000001-0002-0000-0000-624474736554} REINSTALL=ALL REINSTALLMODE=vomus"));
Nell'esempio seguente viene reinstallato un'istanza di e il pacchetto viene memorizzato nella cache usando lo script. Usare la proprietà MSIINSTANCEGUID per fornire il codice prodotto dell'istanza.
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"
Nell'esempio seguente viene illustrato come annunciare un'istanza usando la riga di comando.
msiexec /jm mypackage.msi /t :instance.mst /c /qb
Nell'esempio seguente viene illustrato come installare per annunciare un'istanza usando MsiAdvertiseProductEx.
UINT uiStat = MsiAdvertiseProductEx(_T("path to mypackage.msi"), NULL, _T(":instance.mst"), 0, 0, MSIADVERTISEOPTIONS_INSTANCE);
Nell'esempio seguente viene illustrato come applicare una patch a un'istanza da una riga di comando. È necessario includere l'opzione /n {Product Code} solo se il prodotto è stato originariamente installato con una trasformazione dell'istanza.
msiexec /p mypatch.msp /n {00000001-0002-0000-0000-624474736554} /qb
L'esempio seguente illustra come applicare una patch a un'installazione dell'istanza usando MsiApplyPatch.
UINT uiStat = MsiApplyPatch(_T("path to mypatch.msp"), _T("{00000001-0002-0000-0000-624474736554}"), INSTALLTYPE_SINGLE_INSTANCE, _T("REINSTALL=ALL REINSTALLMODE=omus"));
Per altre informazioni, vedere Installazione di più istanze di prodotti e patch e implementazione di più istanze con trasformazioni di istanza.