TFS 2012 / MSBuild:将额外的条件编译符号添加到已在项目文件csproj中定义的符号C#

时间:2013-12-10 09:22:18

标签: tfs msbuild tfs2012 conditional-compilation csproj

我有一个大的解决方案,和(外部库依赖项)我已经设置了项目属性,其中基于条件符号我链接旧(缺少符号)或新版本(符号存在),还有一些代码根据更改的界面而变化。

我将它作为TFS构建运行了很长一段时间(旧的,稳定版本),但现在需要同时运行新版本。所以我添加了/ p:DefineConstants =“ NEW_LIBRARY ”作为MSBuild参数。

这里的问题是我已经在其他地方的解决方案中有条件符号并且想要保留它们,但是它们被该参数覆盖。

如何在一个构建中添加条件符号而不在另一个构建中添加条件符号(好的,不添加它是微不足道的),同时保留每个项目属性中已定义的符号不变?

非常感谢

1 个答案:

答案 0 :(得分:2)

Create a new project configuration所以你可以传递Configuration属性,即ReleaseNewLib

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'ReleaseNewLib|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\</OutputPath>
    <DefineConstants>TRACE;NEW_LIBRARY</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>

&GT;