web-dev-qa-db-ja.com

MSBuild 12を使用してMVC 4.0プロジェクトをビルドすると、「AXImp.exeが見つからなかったため、タスクが失敗しました」

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で実行されます。

前もって感謝します。

16
ckng

ステップ1(「Microsoft Windows SDKのインストール」)として推奨するのは正しいアドバイスです。 Microsoft Windows SDK をインストールします。

6
dnord

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で試すことができます。

3
rock_walker

これで長い間苦労しました。 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を使用して、エラーが消えました。 。

3
L42

インストールの問題を解決しました Windows 8.1 SDK

3
Julio Nobre

これは今でも私が目にした問題であり、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を使用するようにビルドスクリプトを変更し、「魔法のように」問題はなくなりました。

2
Ben Keene

この問題を解決するために、Windows SDK 10、8、7をインストールし、AxImp.exeが配置されている正しい位置を指すようにレジストリを変更しました。しかし、残念ながら、私はまだ同じエラーが発生しました。

4.0(C:\ Windows\Microsoft.NET\Framework\v4.0.30319)ではなく MSBuild 14. を使用していることがたまに見つかりましたが、プロジェクトを正常にビルドできます。

MSBuild 14.0を使用するには、環境変数でパスを構成する必要があります。

2
Owen Cao

この問題を回避するには、次の手順を実行する必要がありました。

  • Windows SDK(私の場合はバージョン7.1)をインストールする必要がありましたが、 この質問 で処理された理由により、インストールされませんでした。
  • 次に、その質問への回答で詳述されているレジストリキーの変更に進みましたが、「値の新しいコンテンツの書き込みエラー」が発生しました。メッセージ;
  • とにかくレジストリキーを変更するために このガイド (前述の質問の回答へのコメントにもリンクされています)に進みました。
  • その後、Windows SDKをインストールし、検索対象のレジストリキーを手動で作成して、「InstallationFolder」の値が新しく作成されたSDKフォルダー(私の場合は「C:\ Program Files\Microsoft」)を指していることを確認しました。 SDK\Windows\v7.1」)。

これにより、このエラーを克服できました。

1

次のC:\ Program Files(x86)\ Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\msbuildを使用してしまいました。

私の解決策は、ビジュアルスタジオインストール内のmsbuildを探すことだと思います。これは明らかに、ビジュアルスタジオがインストールされている場合にのみ発生します。クリーンなビルドサーバーを使用している場合、これは適切ではありません。

0