【问题标题】:msbuild fails: MSB3086, MSB3091: "AL.exe", "resgen.exe" not foundmsbuild 失败:MSB3086、MSB3091:找不到“AL.exe”、“resgen.exe”
【发布时间】:2014-09-30 23:32:11
【问题描述】:

在 64 位 Windows 7 机器上,我安装了 .Net framework 4.5.1 和 Windows SDK for Windows 8.1 http://msdn.microsoft.com/en-us/windows/desktop/aa904949.aspx

在尝试构建解决方案时,我收到以下错误(似乎相关):

错误 MSB3086:任务无法使用 SdkToolsPath“”或注册表项“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.0A\WinSDK-NetFx40Tools-x86”找到“AL.exe”。确保设置了 SdkToolsPath,并且该工具存在于 SdkToolsPath 下的正确处理器特定位置,并且安装了 Microsoft Windows SDK

错误 MSB3091:任务失败,因为找不到“resgen.exe”,或者未安装正确的 Microsoft Windows SDK。该任务正在注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDK-NetFx35Tools-x86 的 InstallationFolder 值中指定的位置下的“bin”子目录中查找“resgen.exe”。您可以通过执行以下操作之一来解决此问题: 1) 安装 Microsoft Windows SDK。 2) 安装 Visual Studio 2010。 3) 手动将上述注册表项设置到正确的位置。 4)将正确的位置传递给任务的“ToolPath”参数。

我尝试了建议的解决方案(除了在该机器上安装VS:不允许),在互联网上找到了许多其他的,例如重新安装SDK,在注册表中执行一些hack,设置环境变量,在项目中添加标签,尝试多次命令行切换到 msbuild 进程,并遵循以下线程:

Running MSBuild fails to read SDKToolsPath

Failing Build because it can't find AL.exe

tfs 2012 build task failed because "resgen" was not found

但他们都没有解决问题。

这个问题类似于:

https://stackoverflow.com/q/23655387/1288109

没有答案!

任何建议将不胜感激!

【问题讨论】:

    标签: .net sdk msbuild windows-7-x64


    【解决方案1】:

    虽然 SDK 的设置表明它是最新的,但可能不是。 我终于通过删除所有已安装的 SDK 版本解决了这个问题,然后按以下顺序安装以下内容:

    http://www.microsoft.com/en-us/download/details.aspx?id=3138

    http://www.microsoft.com/en-us/download/details.aspx?id=8279

    http://msdn.microsoft.com/en-us/windows/desktop/hh852363.aspx

    http://msdn.microsoft.com/en-us/windows/desktop/aa904949.aspx

    我只是指出可能存在其他一些相关问题:在安装完以上所有内容后,我终于遇到了另一种错误,对于某些项目(针对框架 3.0),未指定输出路径。它被指定为 bin\release。我用 bin\$(Configuration)\ 替换了它,我的解决方案终于建成了。

    另见:

    https://stackoverflow.com/a/26123890/1288109

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-09
      • 1970-01-01
      • 2011-02-28
      • 2011-12-29
      • 1970-01-01
      • 1970-01-01
      • 2017-06-27
      相关资源
      最近更新 更多