WIX:如何混合变量和属性

时间:2015-09-15 13:29:22

标签: wix

Wix相关问题:这是来自product.wxs的snipets

<?define SourceSolutionItems="D:\Dev\Net\Projects\Ge_Portal\Ter.Portal\Ter.Portal\Tm.Ter.Web"?>


    <Property Id="CONFIGURATION_PROPERTY">CIT</Property>

我想合并这个,因为属性 CONFIGURATION_PROPERTY 的值是在单独的UI对话框中设置的。

目前我有这个:

 <Component Id="ConfigFiles_CIT" Guid="{D67B38EE-5658-4A32-8C56-7120B835FFC1}">
          <File Id="WebConfig_CIT" Source="$(var.SourceSolutionItems)\ConfigurationFiles\CIT\web.config" Name="web.Config" />
          <Condition>CONFIGURATION_PROPERTY="CIT"</Condition>
        </Component>

此部分用于可能的每个无线电选择。因此配置文件将从特定的子文件夹安装。到目前为止它工作得很好,我的问题是我在编译时会收到很多警告: http://imgur.com/FVreCCE enter image description here 我试过想:

 <Component Id="ConfigFiles_CIT" Guid="{D67B38EE-5658-4A32-8C56-7120B835FFC1}">
              <File Id="WebConfig_CIT" Source="$(var.SourceSolutionItems)\ConfigurationFiles\[**CONFIGURATION_PROPERTY**]\web.config" Name="web.Config" />

            </Component>

我也厌倦了改变?define SourceSolutionItems="部分来组合它,但没有任何成功。

1 个答案:

答案 0 :(得分:0)

预编译器处理说明(<?if<?define ...)和变量($(var.varname))在 WiX XML文件的实际蜡烛处理之前处理

因此,甚至可能有像

这样的东西
<?define varname=Path[PropertyName]MorePath ?>

蜡烛/灯光过程只会看到

<File Source="Path[PropertyName]MorePath" />

而不是

<File Source="$(var.varname)" />

有关详细信息,请参阅documentation