2012-08-13 34 views

回答

6

使用VisualStudioVersion属性。

+0

创建一个项目在VS2008与后'<导入项目= “$(MSBuildToolsPath)\ Microsoft.CSharp.targets”/>'以下加入: <目标名称= “PrintVisualStudioInfo”> <消息文本=” VisualStudioVersion:'$(VisualStudioVersion)'“/> PrintVisualStudioInfo; $(CompileDependsOn) 打开VS2008输出达到正常。结果: 目标PrintVisualStudioInfo: VisualStudioVersion: '' 在VS2010结果: PrintVisualStudioInfo: VisualStudioVersion:'10 0.0' – WaffleSouffle 2012-08-15 09:12:00

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' 
5

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

相关问题