インスタンス変換を使用した複数インスタンスのインストール
このトピックでは、インスタンス変換を使用する複数インスタンス インストールをインストールまたは再インストールするためのガイドラインを示します。
- インスタンス変換を使用して新しいインスタンスをインストールするときは、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"));
詳細については、「製品とパッチの複数インスタンスのインストール」と「インスタンス変換を使用した複数インスタンスの作成」を参照してください。