使用MSBUILD 构建时出错 error MSB3086: Task could not find "sgen.exe" using the SdkToolsPath的解决方法

如果项目有添加有WB引用,比如引用其它网站的WEB服务等,那么VS在编译时会自动生成个 [项目名称].Serializers.dll的文件,就是把引用服务中的相关对象信息生成硬编码的程序集,以提高效率。

但是,如果在远程服务器上使用msbuil构建时,服务器上如果没安装有winsdk,那么构建就会失败,出现类似这样的信息:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2769,5): error MSB3086: 任务未能使用 SdkToolsPath“”或注册表项“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.0A\WinSDK-NetFx40Tools-x86”找到“sgen.exe”。请确保已设置 SdkToolsPath,在 SdkToolsPath 之下的相应处理器特定位置存在该工具,并且已安装 Microsoft Windows SDK [C:\Users\ex-xulx\Desktop\FSLib.App.SimpleUpdater-master\SimpleUpdater\FSLib.App.SimpleUpdater\FSLib.App.SimpleUpdater.DLL_NET4.csproj]

解决办法是在在项目的属性设置窗口中把 Generate serialization assembly: 设置为 Off

参考地址:http://eysermans.com/post/getting-error-msb3086-task-could-not-find-sgen-exe-using-the-sdktoolspath-when-build-a-net-4-0-solution-with-teamcity-8-0

posted @ 2016-12-12 14:45  法号阿兴  阅读(2836)  评论(0编辑  收藏  举报