从环境变量动态设置WiX中的安装目录

时间:2016-01-25 13:10:53

标签: wix windows-installer environment-variables

我是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>

我是否缺少一些语法,或者我是否从根本上误解了应该如何做?

1 个答案:

答案 0 :(得分:2)

是的,我明白了。

我应该使用SetDirectory元素,而不是使用SetProperty元素。标记很简单;

\z

希望这有助于其他人。