msiexec を使用して MSI をカスタム ディレクトリにインストールする方法は?

msiexec を使用して MSI をカスタム ディレクトリにインストールする方法は?

ここでは、Windows 10 で管理 PowerShell を.msi使用してインストールする試みを示します。msiexec

C:2 つのドライブそれぞれに対して 7 回 (合計 14 回) 、D:の代わりに異なる引数を使用しARG、同じ望ましいパス値を使用して実行しました。

テンプレート:PS C:\WINDOWS\system32> msiexec /i D:\users\username\downloads\soft\publisher\softwarename\software.msi /passive ARG="D:\Soft\publisher\softwarename"

ARGs:

  • TARGETDIR、、、、、、、、INSTALLDIRINSTALLPATHINSTALLFOLDERINSTALLLOCATIONAPPLICATIONFOLDERAPPDIR
    • パラメータで設定されたドライブと同じドライブで実行する場合: このドライブのデフォルトフォルダにインストールされます (例: D:\Blender Foundation\Blender\2.81\)
    • 別のドライブから実行する場合: 何も起こらないようです

この動作を回避する方法はありますか?

アップデート1

以前のバージョンは正しくビルドされていなかったため、別のパッケージ (Blender 2.81) でテストしました.msi。上記の引数名はどれもうまくいきませんでした。ドライブからのインストールでも、すべてD:デフォルトのフォルダーにインストールされましたC:

アップデート2

Blender 2.81では、 で.msiパックされた の場合と同様にWiXでした。インストールパス引数の名前を見つけるには、をINSTALL_ROOT試すことができます。 に感謝しますmsiexec /lp! <msi_property_logfile> /i <msi_name>.msiイェンフォーヤンそして彼の答えここ

答え1

これを適切に機能させるには、次の手順を実行する必要があります。

  1. インストーラーで使用されるパブリック プロパティのリストを取得します.msi
    • PS >.\YourAppInstaller.msi /lp! YourAppInstall.log;
    • インストールをキャンセルします。
  2. .log前の手順で生成されたファイル内のパブリック プロパティを検索します。
  3. .msiコマンドラインからパブリックプロパティを使用して 実行します。
    • プロパティ値にスペースが含まれている場合は、バッククォート+引用符のペア(`")で囲みます。
    • 例:PS >.\YourAppInstaller.msi YOUR_PROP=`"value with spaces`"

Blender のサイレント インストールの場合、インストール パスを指定するには、次のようにインストーラーを呼び出す必要があります (例)。

.\blender-3.4.1-windows-x64.msi INSTALL_ROOT=`"C:\Program Files\Blender Foundation\Blender\`"

こうすることで、どこにインストールするかが理解されます。

関連情報