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

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

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

C:WindowsMicrosoft.NETFrameworkv4.0.30319Microsoft.Common.targets(2769,5): error MSB3086: 任务未能使用 SdkToolsPath“”或注册表项“HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SDKsWindowsv8.0AWinSDK-NetFx40Tools-x86”找到“sgen.exe”。请确保已设置 SdkToolsPath,在 SdkToolsPath 之下的相应处理器特定位置存在该工具,并且已安装 Microsoft Windows SDK [C:Usersex-xulxDesktopFSLib.App.SimpleUpdater-masterSimpleUpdaterFSLib.App.SimpleUpdaterFSLib.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

原文地址:https://www.cnblogs.com/xuliangxing/p/6164444.html