2010-11-10 132 views
1

我们的开发团队最近将解决方案从VS2008升级到VS2010,以使用VS2010 IDE的一些功能。但是我们的目标框架仍然是.Net 3.5。当开发人员从VS 2008命令提示符运行MSBuild来构建VS2010解决方案时,构建成功。但在构建服务器上,我们正在获取以下错误。使用MSBuild 2008构建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?

感谢 可能的工作,这取决于您是否使用.NET 4.0的语言功能托德

回答

1

一种方法,是使用Steve Dunn's SwitchVsVersion作为构建过程的一部分,构建服务器,就可以改变的Visual Studio该解决方案文件的版本至2008年

用法:

SwitchVsVersion.exe <target dir> 2008 

改变SLN和的csproj文件的版本中<目标目录>是可视s tudio 2008兼容

+0

我不认为我们可以使用该选项,因为获得此认证。感谢您的建议,但。 – Todd 2010-11-15 15:33:51

3

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

+0

感谢您的建议。如果没有其他选择,我们当然会继续这样做。 – Todd 2010-11-15 15:34:57

相关问题