使用MSBuild 12构建MVC 4.0项目时“任务失败,因为找不到AXImp.exe”

时间:2014-01-27 05:44:04

标签: asp.net-mvc-4 visual-studio-2012 msbuild windows-server-2012

我正在尝试使用CruiseControl.Net和MSBuild设置构建服务器。但是,它失败了,错误:

 "C:\Builds\PremiumStore\checkout\PremiumStore.sln" (default target) (1) ->
    "C:\Builds\PremiumStore\checkout\Web\PremiumStoreWeb.csproj" (default target) (37) ->
    (ResolveComReferences target) ->
    C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(2151,5):     
    error MSB3091: Task failed because "AxImp.exe" was not found, or the correct Microsoft  
    Windows SDK is not installed.
 The task is looking for "AxImp.exe" in the "bin" subdirectory beneath the location specified in the InstallationFolder value of the registry key `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.1A\WinSDK-  NetFx40Tools-x86.`

 You may be able to solve the problem by doing one of the following:    

 1. Install the Microsoft Windows SDK.

 2. Install Visual Studio

 3. Manually set

    the above registry key to the correct location.  4) Pass the correct location into the 
    "ToolPath" parameter of the task. 
    [C:\Builds\PremiumStore\checkout\Web\PremiumStoreWeb.csproj]

同样的事情在我自己的机器上构建得很好,而不是在服务器上。

我尝试在互联网上搜索解决方案但无法找到解决方案。如果可能的话,我不想在构建服务器上安装Visual Studio。安装整个IDE只是为了进行命令行构建,这有点过分。我已经在该服务器上安装了Microsoft Build Tools 2013,但似乎没有帮助。

我试图按照错误消息的建议放入注册表的路径,但这也不起作用。我还检查了注册表中指示的路径,并且确实存在aximp.exe,但是在名为“NetFx 4.5.1 Tools”的子文件夹中。但是,将文件从此处一级复制到“bin”父文件夹似乎也无济于事。

如果有帮助,我的构建服务器在Windows Server 2012上运行。

提前致谢。

10 个答案:

答案 0 :(得分:6)

他们推荐的步骤1("安装Microsoft Windows SDK")是正确的建议。安装Microsoft Windows SDK

答案 1 :(得分:3)

对于Windows 10,我安装了“Microsoft Windows SDK”8.1,但这对我没有帮助。

所以我在错误描述中跟着 3)选项:手动设置注册表项。

从CMD打开“regedit”命令并找到位置(建议的异常)HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SDKs \ Windows \ v8.0A
文件夹“ WinSDK-NetFx40Tools-x86 ”不存在,所以我创建了它并使用以下键完成:

ComponentName :适用于.NET Framework 4.0的Windows SDK工具
InstallationFolder :C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v8.0A \ bin \ NETFX 4.0 Tools \
ProductVersion :8.0.50727

P.S。:请确保,在“C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v8.0A \ bin \ NETFX 4.0 Tools \”中,您有AxImp.exe

通过相同的算法,您可以尝试使用其他版本 - v8.1A。

答案 2 :(得分:2)

我解决了安装Windows 8.1 SDK

的问题

答案 3 :(得分:1)

为了解决这个问题,我必须执行以下步骤。

  • 我必须安装Windows SDK(以我的情况为7.1版),但由于this question中提到的原因而无法安装;
  • 然后,我继续修改该问题的答案中详细介绍的注册表项,但出现“写入值的新内容时出错”。消息;
  • 我继续关注this guide(也在注释中链接到上述问题的答案),以便无论如何修改注册表项;
  • 然后我能够安装Windows SDK,然后手动创建要查找的注册表项,确保“ InstallationFolder”值指向新创建的SDK文件夹(在我的情况下为“ C:\ Program” Files \ Microsoft SDKs \ Windows \ v7.1“)。

这使我能够克服这个错误。

答案 4 :(得分:0)

这仍然是我今天看到的一个问题,我发现当我尝试在Visual Studio中编译应用程序时,它可以正确编译,但是从C:\ Windows \ Microsoft.NET \运行MSBuild.exe。 Framework \ v4.0.30319 \ MSBuild.exe生成此错误。

在安装.NET 4.7.2 SDK之后仍然存在相同的问题,我发现还有其他MSBuild.exe实例。

我将构建脚本更改为使用 C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe ,“魔术”问题消失了。

答案 5 :(得分:0)

为解决此问题,我安装了Windows sdk 10、8和7,并将注册表更改为指向AxImp.exe所在的正确位置。但是不幸的是,我仍然遇到同样的错误。

我偶尔发现使用MSBuild 14.0而不是4.0(C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319)可以成功构建项目。

要使用MSBuild 14.0,您需要在环境变量中配置路径。

答案 6 :(得分:0)

我为此苦了很长时间。我必须安装了16种不同的东西,并尝试了20种不同版本的注册表项答案("Task failed because AXImp.exe was not found" when using MSBuild 12 to build a MVC 4.0 project)。最后,我发现应该使用15的时候一直在使用buildtools v14。因此,我使用littler而不是使用install2.R,然后错误消失了。

答案 7 :(得分:0)

我最终使用了以下C:\ Program Files(x86)\ Microsoft Visual Studio \ 2019 \ Professional \ MSBuild \ Current \ Bin \ msbuild。

我认为解决方案是在Visual Studio安装中寻找msbuild。 显然,只有在安装了Visual Studio的情况下,这才是好事。

答案 8 :(得分:0)

我遇到了同样的问题。就我而言,我卸载并重新安装了 .NET 4.8 的 .NET Framework SDK 工具。 C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A 丢失,重新安装后它在那里并且我的代码构建成功。

答案 9 :(得分:0)

当我有一个 C# Winforms 应用程序并且没有安装 VS 2017 的正确部分来允许创建此类项目时,这发生在我身上。因此,如果出现此错误,请确保您可以创建一个相同类型的新项目,如果没有,请返回安装程序并选择正确的项目。