我是MSI开发的新手(使用WiX或其他方式),我正在尝试读取环境变量的值并将其用作安装目录。我的msi也是gui-less,并且不允许用户覆盖路径。
我可以用:
成功读取var<SetProperty
Id="TARGETINSTALLDIR"
Value="[%MY_ENV_VAR]\My\Install\Path"
After="LaunchConditions"
Sequence="first" />
我可以在msi日志中看到检索到的正确路径。
我已尝试以下设置返回的路径:
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="APPLICATIONROOTDIRECTORY" Name="[TARGETINSTALLDIR]"/>
</Directory>
此外,
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="APPLICATIONROOTDIRECTORY" Name="TARGETINSTALLDIR"/>
</Directory>
如果不这样做,我还尝试读取ROOT目录中的目录路径,如下所示
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ROOT" Name="[%MY_ENV_VAR]">
<Directory Id="My" Name="My">
<Directory Id="Install" Name="Install">
<Directory Id="APPLICATIONROOTDIRECTORY" Name="Path"/>
</Directory>
</Directory>
</Directory>
</Directory>
我是否缺少一些语法,或者我是否从根本上误解了应该如何做?
答案 0 :(得分:2)
是的,我明白了。
我应该使用SetDirectory元素,而不是使用SetProperty元素。标记很简单;
\z
希望这有助于其他人。