BuildingInsideVisualStudio属性提供了检测项目是否在 Visual Studio 中构建的能力。
有什么方法可以确定正在使用哪个版本的 Visual Studio?
BuildingInsideVisualStudio属性提供了检测项目是否在 Visual Studio 中构建的能力。
有什么方法可以确定正在使用哪个版本的 Visual Studio?
使用 VisualStudioVersion 属性。
由于评论没有格式化,这里的调查显示 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'
根据这篇文章,该属性从 VS2012 开始存在。它是在Microsoft.Common.targets
安装 .NET 4.5 时在文件中定义的(检查原始 .NET 4.0 没有定义该属性)。