Detect Visual Studio version from within MSBuild p

2019-06-17 02:16发布

The BuildingInsideVisualStudio property provides the ability to detect whether a project is building inside Visual Studio.

Is there any way to determine which version of Visual Studio is being used ?

3条回答
Rolldiameter
2楼-- · 2019-06-17 02:24

Use the VisualStudioVersion property.

查看更多
Deceive 欺骗
3楼-- · 2019-06-17 02:32

Since comments aren't formatted, here's investigation showing fsimonazzi is correct. On 2008, VisualStudioVersion is NOT set. On 2010 (and up presumably) it is.

Created a project in VS2008 with the following added after <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />:

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

Turned VS2008 output up to Normal. Result:

Target PrintVisualStudioInfo:
    VisualStudioVersion: ''

On VS2010 Result:

PrintVisualStudioInfo:
   VisualStudioVersion: '10.0'
查看更多
虎瘦雄心在
4楼-- · 2019-06-17 02:33

According to this post the property exists starting with the VS2012. It is defined in the Microsoft.Common.targets file when .NET 4.5 is installed (checked that original .NET 4.0 doesn't have the property defined).

查看更多
登录 后发表回答