"Задачу не удалось, потому что AXImp.exe не найден" при использовании MSBuild 12 для создания проекта MVC 4.0

Я пытаюсь настроить сервер сборки, используя CruiseControl.Net и MSBuild. Однако он терпит неудачу с ошибкой:

 "C:BuildsPremiumStorecheckoutPremiumStore.sln" (default target) (1) ->
    "C:BuildsPremiumStorecheckoutWebPremiumStoreWeb.csproj" (default target) (37) ->
    (ResolveComReferences target) ->
    C:Program Files (x86)MSBuild.0binMicrosoft.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_MACHINESOFTWAREMicrosoftMicrosoft SDKsWindowsv8.1AWinSDK-  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:BuildsPremiumStorecheckoutWebPremiumStoreWeb.csproj]

то же самое прекрасно работает на моей собственной машине, но не на сервере.

Я пробовал искать по всему интернету решение, но не смог его найти. Если возможно, я бы предпочел не устанавливать Visual Studio на сервере сборки. Это своего рода перебор, чтобы установить всю IDE только для сборки командной строки. Я установил Microsoft Build Tools 2013 на этом сервере, но это, похоже, не помогает.

Я попытался ввести путь в реестр, как указано в сообщении об ошибке, но это тоже не сработало. Я также проверил путь в реестре и aximp.exe действительно присутствует, но в подпапке под названием "NetFx 4.5.1 Tools". Однако копирование файлов отсюда на один уровень до родительской папки " bin " также не помогает.

Если это помогает, мой сервер сборки работает в Windows Server 2012.

спасибо заранее.

5 ответов


то, что они рекомендуют как Шаг 1 ("установить Microsoft Windows SDK"), является правильным советом. Установите Microsoft Windows SDK.


для Windows 10 я установил" Microsoft Windows SDK " 8.1, но это мне не помогло.

поэтому я последовал за 3) опция в описании ошибки: вручную установите раздел реестра.

открыл команду "regedit" из CMD и нашел местоположение (как предлагалось исключение) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\В8.0А
В папке "WinSDK-NetFx40Tools-x86" отсутствовал, поэтому я создал его и выполнил с помощью следующие кнопки:

имя компонента: средства Windows SDK для .NET Framework 4.0
InstallationFolder: C:\Program файлы (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\
ProductVersion: 8.0.50727

С. П.: будьте уверены, что в "файлы C:\Program (для x86)\Microsoft пакет SDK папке\Windows\В8.0А\бин\NETFX 4.0 инструменты\" у вас AxImp.exe

по тому же алгоритму вы можете попробовать с другой версией-v8.1А.


Я решил свою проблему установкой Windows 8.1 SDK


это все еще проблема, которую я видел сегодня, и я обнаружил, что когда я попытаюсь скомпилировать приложение в Visual Studio, оно скомпилировано правильно, но работает MSBuild.exe от C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe сгенерировал эту ошибку.

после установки .NET 4.7.2 SDK и все еще имея ту же проблему, я обнаружил, что есть другие экземпляры MSBuild.исполняемый.

Я изменил наш скрипт сборки для использования C:\Program Files (x86)\MSBuild.0\Bin\MSBuild.exe вместо этого и проблема "волшебным образом" ушла.


чтобы обойти эту проблему, мне пришлось пройти следующие шаги.

  • мне пришлось установить Windows SDK (версия 7.1, в моем случае), но он не будет установлен из-за причины, рассмотренной в этот вопрос;
  • затем я приступил к изменению разделов реестра, подробно описанных в ответе на этот вопрос, но я получил " ошибка записи нового содержимого значения.- сообщение;
  • Я продолжал следовать данное руководство (также связан в комментариях к ответу на вышеупомянутый вопрос) для того, чтобы изменить ключи реестра в любом случае;
  • затем я смог установить Windows SDK, а затем вручную создал раздел реестра, который искали, убедившись, что значение "InstallationFolder" указывает на недавно созданную папку SDK (в моем случае, "C:\Program файлы\Microsoft SDKs\Windows\v7.1").

Это позволило мне преодолеть эту ошибку.