用于区分 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中的字符串数组[重复]

用于 Visual Studio 2012 的 Crystal Reports 13.07 未在浏览器中呈现

Visual Studio 2010/2012 Pro Power Tools