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