如果項目有添加有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