BuildingInsideVisualStudio属性提供了检测Visual Studio中是否构建项目的功能。从MSBuild项目中检测Visual Studio版本
有什么方法可以确定正在使用哪个版本的Visual Studio?
BuildingInsideVisualStudio属性提供了检测Visual Studio中是否构建项目的功能。从MSBuild项目中检测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'
根据this post属性存在开始与VS2012。它在.NET 4.5安装时检测到Microsoft.Common.targets
文件(检查原始.NET 4.0没有定义属性)。
创建一个项目在VS2008与后'<导入项目= “$(MSBuildToolsPath)\ Microsoft.CSharp.targets”/>'以下加入: <目标名称= “PrintVisualStudioInfo”> <消息文本=” VisualStudioVersion:'$(VisualStudioVersion)'“/> PrintVisualStudioInfo; $(CompileDependsOn) CompileDependsOn> PropertyGroup> 打开VS2008输出达到正常。结果: 目标PrintVisualStudioInfo: VisualStudioVersion: '' 在VS2010结果: PrintVisualStudioInfo: VisualStudioVersion:'10 0.0' –
WaffleSouffle
2012-08-15 09:12:00