从MSBuild项目中检测Visual Studio版本

时间:2012-08-13 13:37:49

标签: visual-studio msbuild

BuildingInsideVisualStudio属性提供了检测项目是否在Visual Studio中构建的功能。

有没有办法确定使用哪个版本的Visual Studio?

3 个答案:

答案 0 :(得分:7)

使用VisualStudioVersion属性。

答案 1 :(得分:6)

由于评论没有格式化,这里的调查显示fsimonazzi是正确的。 2008年,未设置VisualStudioVersion。在2010年(据推测),它是。

在VS2008中创建了一个项目,并在<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />之后添加了以下内容:

<Target Name="PrintVisualStudioInfo">
  <Message Text="VisualStudioVersion: '$(VisualStudioVersion)'" />
</Target>
<PropertyGroup>
  <CompileDependsOn>
    PrintVisualStudioInfo;
    $(CompileDependsOn)
  </CompileDependsOn>
</PropertyGroup>

将VS2008输出转为正常。结果:

Target PrintVisualStudioInfo:
    VisualStudioVersion: ''

在VS2010上结果:

PrintVisualStudioInfo:
   VisualStudioVersion: '10.0'

答案 2 :(得分:5)

根据this post,该属性从VS2012开始存在。安装.NET 4.5时,它在Microsoft.Common.targets文件中定义(检查原始.NET 4.0没有定义属性)。