特定のディレクトリにmsiexecでmsiをインストールしたい。私は使用しています:
msiexec /i "msi path" INSTALLDIR="C:\myfolder" /qb
Msiは私の特定のパスではなくデフォルトのパスにインストールされるため、「INSTALLDIR」では機能しません。
INSTALLDIRの代わりにTARGETDIRを使用します。 TARGETDIRプロパティの引用符は、スペースの場合のみパスの周りにあることに注意してください。
msiexec/i "msiパス" TARGETDIR = "C:\ myfolder"/qb
InstallShield 12
INSTALLDIR
は、Setup.exeまたは.msiデータベースを起動するエンドユーザーなど、通常のWindowsインストーラーベース(またはInstallScript MSI)インストールのメイン製品インストールディレクトリを表します。
TARGETDIR
は、InstallScriptインストール、または管理者のWindowsインストーラーベースのインストール(ユーザーが/ aコマンドラインスイッチを指定してSetup.exeまたはMsiExec.exeを実行する場合)のインストールディレクトリを表します。
InstallScript MSIプロジェクトでは、InstallScript変数MSI_TARGETDIR
は、管理者用インストールのターゲットを保存します。
msiexec /i "msi path" INSTALLDIR="C:\myfolder" /q
このバリアントのみがうまく機能しました。
実際、両方のINSTALLPATH/TARGETDIR
は正しい。 MSIがこれを処理する方法に依存します。
wixToolSet
を使用してMSGを作成します。WXSファイルには、「ディレクトリ」ノードがあり、ルートディレクトリは次のようになります。
<Directory Id="**TARGETDIR**" Name="SourceDir">;
ご覧のとおり、Id
を使用する必要があります。
私の場合、それらはすべて機能せず、最終的には
msiexec /i "msinamebla.msi" INSTALLFOLDER="C:\test\" /qb
Ezzadeenの説明に従ってlog.txtをチェックすると、そこに「INSTALLFOLDER」が見つかりました。
これは動作するはずです:
msiexec /i "msi path" TARGETDIR="C:\myfolder" /qb
INSTALLLOCATIONを使用します。問題がある場合は、/ lv log.txtを使用して詳細なログをダンプします。ログは、独自のオプションをオーバーライドするプロパティの変更があるかどうかを示します。既に製品をインストールしている場合、2回目の実行でインストール場所を変更せずに製品を更新する場合があります。最初にアンインストールする必要があります(/ xオプションを使用)。
これも私のために働いた
msiexec /i "msi path" INSTALLDIR="D:\myfolder" /q
私は他の2つのイテレーションを試し、両方ともデフォルトのC:\ Program Filesにインストールしました
INSTALLDIR = "D:\ myfolder"/qは、他のドライブにインストールされました。
msiの場合、インストールプロセスの後半でINSTALLDIRとTARGETDIRの両方がDEFAULTPATHCの値を反映するようにリセットされたため、DEFAULTPATHC = "D:\ myfolder"を設定する必要がありました。
最新のmsiexecにはAPPLICATIONFOLDER = "path"を使用します
Advanced Installer
を使用して.msiをビルドした場合は、APPDIR=
を使用します