2013-12-10 24 views
2

我有一个大的解决方案,和(外部库依赖项)我已经建立项目属性,其中基于条件符号我链接针对旧的(符号缺失)或新版本(符号存在),以及基于更改的接口的一些代码更改。TFS 2012/MSBuild:添加额外的条件编译符号已经在项目文件中定义的csproj C#

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

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

如何在一个构建中添加条件符号而不在另一个中(好吧,不要添加它很简单),而不改变每个项目属性中已定义的符号?

非常感谢

回答

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> 

>

+0

谢谢!这可能确实有效。我对添加项目配置有很不好的记忆,“只是为了测试”,然后VS想打开那些最受欢迎的默认值,反过来导致完全不需要的结果。 :)除此之外,你的解决方案将会更加清洁,那么我现在拥有的就是更简单,只需切换(本地)配置,而不必编辑定义。 –

相关问题