从环境变量在WiX中动态设置install dir
我是MSI开发新手(使用WiX或其他方式),我正在尝试读取环境变量的值并将其用作安装目录。我的msi也没有gui,不允许用户覆盖路径 我可以通过以下方式成功读取变量:从环境变量在WiX中动态设置install dir,wix,windows-installer,environment-variables,Wix,Windows Installer,Environment Variables,我是MSI开发新手(使用WiX或其他方式),我正在尝试读取环境变量的值并将其用作安装目录。我的msi也没有gui,不允许用户覆盖路径 我可以通过以下方式成功读取变量: <SetProperty Id="TARGETINSTALLDIR" Value="[%MY_ENV_VAR]\My\Install\Path" After="LaunchConditions" Sequence="first" /> 我可以在msi日志中看到检索到的正确
<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="ROOT" Name="[%MY_ENV_VAR]">
<Directory Id="My" Name="My">
<Directory Id="Install" Name="Install">
<Directory Id="APPLICATIONROOTDIRECTORY" Name="Path"/>
</Directory>
</Directory>
</Directory>
</Directory>
是我缺少了一些语法,还是我根本就误解了应该怎么做?是的,我找到了答案 我不应该使用SetProperty元素,而应该使用SetDirectory元素。标记简单
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="APPLICATIONROOTDIRECTORY"/>
</Directory>
<SetDirectory Id="APPLICATIONROOTDIRECTORY" Value="[%MY_ENV_VAR]\My\Install\Path" Sequence="first" />
希望这能帮助其他人解决问题。是的,我找到了答案 我不应该使用SetProperty元素,而应该使用SetDirectory元素。标记简单
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="APPLICATIONROOTDIRECTORY"/>
</Directory>
<SetDirectory Id="APPLICATIONROOTDIRECTORY" Value="[%MY_ENV_VAR]\My\Install\Path" Sequence="first" />
希望这能帮助其他人