2011-06-10 69 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