我想根据是否定义了值来更改Wix变量的值。在我的wixproj中,我有:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'TFS Live|x86' ">
<OutputPath>bin\$(Platform)\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Platform)\$(Configuration)\</IntermediateOutputPath>
<WixVariables>LIVE</WixVariables>
<DefineConstants>LIVE</DefineConstants>
</PropertyGroup>
...在我的wx中,我有:
<?ifdef LIVE ?>
<?define binaryPath = "C:\Builds\5\IT Aerodynamics\RBT.TestSpec.LiveRelease\Binaries" ?>
<?else?>
<?define binaryPath = "C:\Builds\5\IT Aerodynamics\RBT.TestSpec.CI\Binaries" ?>
<?endif?>
...但是当我构建适当的配置时,ifdef永远不会触发。我总是得到
binaryPath
的第二个值。关于我在做什么错的任何建议吗? 最佳答案
该代码对我有用。要检查的一件事是,稍后在.wixproj中您没有另一个DefineConstants
MSBuild属性,该属性看起来不是:
<DefineConstants>$(DefineConstants);OtherVars=Value</DefineConstants>
默认的.wixproj模板创建定义了
Debug
预处理程序变量的项目,如下所示:<DefineConstants>Debug</DefineConstants>
这将覆盖在项目中为调试版本定义的更高版本的
DefineConstants
。否则,一切看起来都很好。