2011-06-10 74 views
13

我正在用WiX構建MSI安裝程序,我正在使用WixUI_Advanced。我的ApplicationFolder的定義如下所示,遵循另一個SO答案(WiX tricks and tips)中的建議。將命令行變量傳遞到基於WiXx的Windows安裝程序MSI

<Directory Id="TARGETDIR" Name="SourceDir"> 
    <Directory Id="$(var.PlatformProgramFilesFolder)"> 
     <Directory Id="APPLICATIONFOLDER" Name="$(var.InstallName)"> 

我現在想給用戶做一個靜默安裝,並通過路徑上的ApplicationFolder名稱,或者相對於相應的程序文件夾或絕對的選項。

我知道我可以在msiexec,的命令行上傳遞公共屬性值,但我如何使用它作爲ApplicationFolder的值,以及如何將它設置爲絕對vs相對路徑。

回答

17

你只是運行MSIEXEC定義時,在命令行上的屬性:

msiexec /i product.msi APPLICATIONFOLDER="C:\Program Files\Company\Product\" 

文件將被安裝到 「C:\ Program Files文件\企業\產品」 目錄。

我建議使用絕對路徑在這裏。相對路徑可能會導致意想不到的結果。

+0

這適用於我進行安靜安裝時,但是當我執行交互式安裝並按下許可證屏幕上的高級按鈕時,我看不到指定的APPLICATIONFOLDER出現在目錄選擇對話框中。我希望/希望它也出現在那裏。 – 2011-06-13 11:45:37

+2

@Jeroen我明白了。我可以建議使用MSI詳細日誌來查找爲什麼APPLICATIONFOLDER的值被修改以及在哪裏。運行你的軟件包爲'msiexec/i package.msi/lv * x log.txt APPLICATIONFOLDER =「C:\ Program Files \ Company \ Product \」'。然後在日誌中搜索'APPLICATIONFOLDER',你會看到它的修改時間。 (對不起,我花了一段時間。) – 2011-06-15 18:00:37