【问题标题】:Post build event triggers error MSB3073 exited with code 9009构建后事件触发错误 MSB3073 exited with code 9009
【发布时间】:2017-06-23 10:22:17
【问题描述】:

我有这样的事作为后期构建活动

"$(SDK40ToolsPath)sgen.exe" 

当构建在新的构建机器上运行时,我收到此错误

 C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(4291,5): error MSB3073: The command ""sgen.exe" ..." exited with code 9009.

这意味着找不到命令。 sgen.exe 位于这些文件夹中

c:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\x64\
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin
c:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\

我安装了 VS2015,Microsoft Build Tools 2015。

如何指定 sgen.exe 的正确路径?

【问题讨论】:

  • 请尝试使用路径中的 MSBuild.exe:“C:\Program Files (x86)\MSBuild\14.0\Bin”。从 Visual Studio 2013 开始,2013 版本的 MSBuild 将作为 Visual Studio 的一部分而不是 .NET Framework 提供。您可以使用命令“echo "$(SDK40ToolsPath)"”来检查使用了哪个路径。
  • 我在 TFSbuild.proj 中修改了 ToolsVersion 14 schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="14.0">
  • 使用 Visual Studio 而不是 TFS 构建项目会产生什么结果?您似乎在 TFS 上使用旧路径设置了 MSBuild 位置,您可以尝试在 TFS 上使用 MSBuild 14.0 版构建项目。个人觉得这个问题应该和sgen.exe的路径无关,可以用绝对路径代替。
  • 好吧,在本地它工作正常(我从 VS 触发构建并且没有使用 TFSbuild.proj)。并且在 *.proj 文件具有对 ToolsVersion 4 的旧引用并且它不起作用之前。现在我切换到 14 并且它工作正常。
  • 很高兴知道它对您有用。您可以将您的评论转换为有利于其他有相同问题的社区的答案。

标签: c# .net visual-studio-2015 msbuild


【解决方案1】:

我已在 TFSbuild.proj 中修改为拥有 ToolsVersion 14

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-03
    • 1970-01-01
    • 2019-09-25
    • 2013-06-09
    • 1970-01-01
    • 2021-05-15
    • 1970-01-01
    相关资源
    最近更新 更多