Ответ 1
То, что они рекомендуют в качестве шага 1 ( "установить Microsoft Windows SDK" ), является правильным советом. Установите Microsoft Windows SDK.
Я пытаюсь настроить сервер сборки с помощью 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.
Спасибо заранее.
То, что они рекомендуют в качестве шага 1 ( "установить Microsoft Windows SDK" ), является правильным советом. Установите Microsoft Windows SDK.
В Windows 10 я установил "Microsoft Windows SDK" 8.1, но это мне не помогло.
Итак, я использовал параметр 3) в описании ошибки: вручную установите раздел реестра.
Открыта команда "regedit" из CMD и найдена локация (как предложено исключение) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDK\Windows\ v8.0A
Папка "WinSDK-NetFx40Tools-x86" отсутствовала, поэтому я создал ее и выполнил следующие клавиши:
ComponentName: инструменты SDK для Windows для .NET Framework 4.0
InstallFolder: C:\Program Files (x86)\Microsoft SDK\Windows\v8.0A\bin\NETFX 4.0 Tools\
ProductVersion: 8.0.50727
P.S.: убедитесь, что в "C:\Program Files (x86)\Microsoft SDK\Windows\v8.0A\bin\NETFX 4.0 Tools \" у вас есть AxImp.exe
По тому же алгоритму вы можете попробовать другую версию - v8.1A.
Я решил проблему при установке Windows 8.1 SDK
Это все еще проблема, с которой я столкнулся сегодня, и обнаружил, что когда я пытаюсь скомпилировать приложение в Visual Studio, оно компилируется правильно, но запускается MSBuild.exe из C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe сгенерировал эту ошибку.
После установки .NET 4.7.2 SDK, но с той же проблемой, я обнаружил, что существуют другие экземпляры MSBuild.exe.
Я изменил наш скрипт сборки на использование C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe
и проблема "волшебным образом" исчезла.
Чтобы обойти эту проблему, мне пришлось пройти следующие шаги.
Это позволило мне преодолеть эту ошибку.
Чтобы решить эту проблему, я установил Windows SDK 10, 8 и 7 и изменил реестр, чтобы указать правильную позицию, где находится AxImp.exe. Но, к сожалению, я все еще получил ту же ошибку.
Я просто случайно обнаружил, что использование MSBuild 14.0 вместо 4.0 (C:\Windows\Microsoft.NET\Framework\v4.0.30319) может успешно построить мой проект.
Чтобы использовать MSBuild 14.0, вам необходимо настроить путь в переменной среды.
Я долго боролся с этим. Я, должно быть, установил шестнадцать разных вещей и попробовал двадцать разных версий ответа раздела реестра ("Задача не удалась, потому что AXImp.exe не был найден" при использовании MSBuild 12 для сборки проекта MVC 4.0). В конце концов я понял, что я использовал buildtools v14, когда мне следовало использовать 15. Поэтому вместо использования C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe
я использовал C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe
, а затем ошибка исчезла.