MSBild错误MSB3086,与TeamCity

Ben*_*Ben 7 .net msbuild teamcity windows-server-2008 microsoft-web-deploy

我正在尝试.NET 4使用MSBuildWeb Deploy 构建和部署项目,并且TeamCity我在本地开发机器上运行TeamCity实例时工作正常(最终),但是当我尝试使用相同设置设置新的TeamCity实例时得到以下错误:

\Microsoft.Common.targets(2249, 9): error MSB3086: Task could not find "sgen.exe" 
using the SdkToolsPath 
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\" or the 
registry key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A".
Make sure the SdkToolsPath is set and the tool exists in the correct processor 
specific location under the SdkToolsPath and that the Microsoft Windows SDK 
is installed 
Run Code Online (Sandbox Code Playgroud)

我正在运行Windows Server 2008,并安装了.NET 4,包括(我相信)MSBuild 4.我也安装了Windows SDK 7.1,因为其他线程建议这可能是问题,但仍然没有运气.任何想法或建议将不胜感激.

谢谢

kev*_*rpe 7

我在TeamCity遇到了同样的问题.以下是我要解决的步骤:

  1. 下载适用于Windows 7.1的Windows SDK.如果您的服务器/用户不允许Web访问,则Web安装程序将无法运行,因此我建议您下载完整的软件包.请小心下载正确的版本 - x86 [32位],x64 [64位]或Itanium.
  2. 在安装过程中,您只需选择一个选项:.NET开发 - >工具 在此输入图像描述
  3. 再次尝试构建.我不需要重新启动我的代理以使构建正常工作.

如果您接受安装的默认路径,则可在此处找到sgen.exe:

C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\sgen.exe
Run Code Online (Sandbox Code Playgroud)


Wya*_*ett 6

对于没有visual studio的windows SDK 7.0A与verus一起安装的方式,有一些不足之处.有路径问题.简单的方法是在构建机器上安装Visual Studio,但这感觉不对.或者至少它对我有用.另一种选择是将您的构建设置为不创建序列化程序集 - 在许多情况下它们并不重要.请注意,如果您跳过发布版本,则默认会发生这种情

真正的解决方法是在sgen.exe上正确指向TeamCity,然后通过使用正确的工具路径告诉msbuild使用正确的文件夹.请参阅此问题以获得更好的解释.