Installazione di più istanze con trasformazioni di istanza
In questo argomento vengono fornite linee guida per l'installazione o la reinstallazione di un'installazione di più istanze che usa le trasformazioni dell'istanza.
- Quando si installa una nuova istanza con una trasformazione dell'istanza, includere la proprietà MSINEWINSTANCE e impostare MSINEWINSTANCE=1.
- Quando si installa una nuova istanza con una trasformazione dell'istanza, includere la proprietà TRANSFORMS e impostare la prima trasformazione nell'elenco delle trasformazioni nell'istanza di trasformazione 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 di 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 viene 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 nella cache il pacchetto. L'istanza viene definita dal codice {00000001-0002-0000-0000-624474736554}prodotto .
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 viene definita 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. Utilizzare la proprietà MSIINSTANCEGUID per specificare il codice prodotto dell'istanza.
UINT uiStat = MsiInstallProduct(_T("path to mypackage.msi"), _T("MSIINSTANCEGUID={00000001-0002-0000-0000-624474736554} REINSTALL=ALL REINSTALLMODE=vomus"));
L'esempio seguente reinstalla un'istanza e memorizza nella cache il pacchetto usando lo script. Utilizzare la proprietà MSIINSTANCEGUID per specificare 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 installato originariamente con una trasformazione dell'istanza.
msiexec /p mypatch.msp /n {00000001-0002-0000-0000-624474736554} /qb
Nell'esempio seguente viene illustrato come applicare una patch a un'installazione di 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 creazione di piùistanze con trasformazioni di istanza.