如何使用 msiexec 將 MSI 安裝到自訂目錄?

如何使用 msiexec 將 MSI 安裝到自訂目錄?

這是我在 Windows 10 上.msi使用管理 PowerShell 進行安裝的嘗試。msiexec

我已經為 2 個驅動器中的每一個驅動器做了 7 次,C:並且D:(總共 14 次)使用不同的參數代替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>使用any.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\`"

這樣它就會了解您想要將其安裝在哪裡。

相關內容