使用MSBuild 2008构建VS2010解决方案

时间:2010-11-10 17:22:06

标签: visual-studio-2008 visual-studio-2010 msbuild sgen sgen.exe

我们的开发团队最近从VS2008升级了VS2010的解决方案,以使用VS2010 IDE的一些功能。但我们的目标框架仍然是.Net 3.5。当dev从VS 2008命令提示符运行MSBuild以构建VS2010解决方案时,构建成功。但在构建服务器上,我们收到以下错误。

MSB3086:任务无法使用SdkToolsPath“”或注册表项“HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SDKs \ Windows \ v7.0A”找到“sgen.exe”。确保已设置SdkToolsPath并且该工具存在于SdkToolsPath下正确的处理器特定位置,并且Microsoft Windows SDK安装在Microsoft.Common.targets(2249,9)

我们在构建服务器上没有VS2010或Windows SDK 7.1或.Net 4.0。此外,我们不想在构建服务器上安装.Net 4.0或VS2010,因为我们希望继续生产.Net 3.5。

有没有办法修复使用VS 2008 / 3.5 MSBuild运行VS2010解决方案而不在构建服务器上安装.Net 4.0或VS2010?

由于 托德

2 个答案:

答案 0 :(得分:3)

如果您使用VS2010进行开发,那么您应该至少在构建服务器上安装.NET 4.0(MSBuild 4.0)。您的项目仍然可以针对.NET 3.5。我不会想到尝试让MSBuild 3.5构建VS2010解决方案文件。只需使用MSBuild 4.0并以.NET 3.5为目标。

答案 1 :(得分:1)

根据您是否使用.Net 4.0语言功能,可能有效的一种方法是在构建服务器上使用Steve Dunn's SwitchVsVersion作为构建过程的一部分来更改解决方案的Visual Studio版本提交到2008年。

用法:

SwitchVsVersion.exe <target dir> 2008

更改&lt; target dir&gt;中的sln和csproj文件的版本兼容Visual Studio 2008