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」というサブフォルダーにあります。ただし、ここから1レベル上の「bin」親フォルダーにファイルをコピーしても、効果がないようです。
それが役立つ場合、私のビルドサーバーはWindows Server 2012で実行されます。
前もって感謝します。
ステップ1(「Microsoft Windows SDKのインストール」)として推奨するのは正しいアドバイスです。 Microsoft Windows SDK をインストールします。
Windows 10の場合、「Microsoft Windows SDK」8.1をインストールしましたが、それでも役に立ちませんでした。
エラーの説明で)オプションを続けました:レジストリキーを手動で設定します。
CMDから「regedit」コマンドを開き、場所を見つけました(例外が提案されています)HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.0A
フォルダ「WinSDK-NetFx40Tools-x86」がなかったので、作成して次のキーで満たしました。
ComponentName:Windows SDK Tools for .NET Framework 4.0
InstallationFolder:C:\ Program Files(x86)\ Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools \
ProductVersion:8.0.50727
PS:必ず、「C:\ Program Files(x86)\ Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools \」にAxImp.exeがあることを確認してください
同じアルゴリズムにより、別のバージョン-v8.1Aで試すことができます。
これで長い間苦労しました。 16の異なるものをインストールし、20の異なるバージョンのレジストリキーの回答を試してみました( MSBuild 12を使用してMVC 4.0プロジェクトをビルドすると、「AXImp.exeが見つからなかったため、タスクが失敗しました」 )。最終的に、15を使用するべきだったときにbuildtools v14を使用していたことがわかりました。そのため、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
を使用して、エラーが消えました。 。
インストールの問題を解決しました Windows 8.1 SDK
これは今でも私が目にした問題であり、Visual Studio内でアプリケーションをコンパイルしようとすると、正しくコンパイルされましたが、C:\ Windows\Microsoft.NET\Framework\v4からMSBuild.exeを実行していることがわかりました.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が配置されている正しい位置を指すようにレジストリを変更しました。しかし、残念ながら、私はまだ同じエラーが発生しました。
4.0(C:\ Windows\Microsoft.NET\Framework\v4.0.30319)ではなく MSBuild 14. を使用していることがたまに見つかりましたが、プロジェクトを正常にビルドできます。
MSBuild 14.0を使用するには、環境変数でパスを構成する必要があります。
この問題を回避するには、次の手順を実行する必要がありました。
これにより、このエラーを克服できました。
次のC:\ Program Files(x86)\ Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\msbuildを使用してしまいました。
私の解決策は、ビジュアルスタジオインストール内のmsbuildを探すことだと思います。これは明らかに、ビジュアルスタジオがインストールされている場合にのみ発生します。クリーンなビルドサーバーを使用している場合、これは適切ではありません。