用于区分 Visual Studio 2012 和 2010 的 C# 预处理器指令或条件?
Posted
技术标签:
【中文标题】用于区分 Visual Studio 2012 和 2010 的 C# 预处理器指令或条件?【英文标题】:C# preprocessor directive or conditional for differentiating between Visual Studio 2012 and 2010? 【发布时间】:2013-08-24 04:56:55 【问题描述】:我有一些仅适用于 Visual Studio 2012 的 C# 代码,但我也在同一代码库上使用 Visual Studio 2010。是否有预处理指令或条件可以用来隔离代码?
【问题讨论】:
【参考方案1】:据我所知,没有内置预处理器指令,但有一个 MSBuild 变量。
打开项目文件(在解决方案资源管理器中将其卸载,然后单击编辑)并在主要属性声明集之后添加以下内容。
<PropertyGroup Condition="'$(VisualStudioVersion)' == '10.0'">
<DefineConstants>$(DefineConstants);VS_10;</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(VisualStudioVersion)' == '11.0'">
<DefineConstants>$(DefineConstants);VS_11;</DefineConstants>
</PropertyGroup>
然后您可以使用 VS_10
(VS 2010) 或 VS_11
(VS 2012) preproc 指令。
【讨论】:
以上是关于用于区分 Visual Studio 2012 和 2010 的 C# 预处理器指令或条件?的主要内容,如果未能解决你的问题,请参考以下文章
我需要用于 .NET 4.5 的 Visual Studio 2012 还是 Visual Studio 2010 适合 4.5?
用于非 MFC 应用程序的 Visual Studio 2012 资源编辑器
Microsoft Visual Studio Ultimate 2012 中用于 .NET 的 Crystal Reports
“<<”操作数不适用于visual studio2012中的字符串数组[重复]