【发布时间】:2012-08-13 13:37:48
【问题描述】:
BuildingInsideVisualStudio 属性提供了检测项目是否在 Visual Studio 中构建的能力。
有什么方法可以确定正在使用的 Visual Studio 版本吗?
【问题讨论】:
标签: visual-studio msbuild
BuildingInsideVisualStudio 属性提供了检测项目是否在 Visual Studio 中构建的能力。
有什么方法可以确定正在使用的 Visual Studio 版本吗?
【问题讨论】:
标签: visual-studio msbuild
使用 VisualStudioVersion 属性。
【讨论】:
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />之后添加了以下内容:由于 cmets 没有格式化,这里的调查显示 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'
【讨论】:
msbuild.exe MyProject.csproj /t:PrintVisualStudioInfo 运行它(提供msbuild.exe 和您的csproj 的正确位置)。