.net framework 3.5に構築された.netアプリケーションがあります。JenkinsCIサーバーにこのアプリケーションを構築しようとしています。 MSBuildプラグインを追加し、MSBuildの2.0、3.5、4.0バージョンの.exeファイルへのパスを追加しました。しかし、以下のエラーメッセージが表示され、ビルドプロセスが失敗します。
Path To MSBuild.exe: msbuild.exe
Executing command: cmd.exe /C msbuild.exe Neo.sln && exit %%ERRORLEVEL%%
[Test project] $ cmd.exe /C msbuild.exe Neo.sln && exit %%ERRORLEVEL%%
'msbuild.exe' is not recognized as an internal or external command,
operable program or batch file.
Build step 'Build a Visual Studio project or solution using MSBuild.' marked uild as failure
Finished: FAILURE
誰も私を助けることができます.. ??
MSBuildプラグインを機能させるには、Jenkins管理画面でプラグインを構成する必要があります。
注:新しいJenkinsバージョンでは、グローバルツール構成にMSBuild構成があります。
「Name」フィールドに注意してください。ここでは、この特定の構成v4.0.30319を呼び出しています。好きな名前を付けることができますが、理想的には、名前は何らかの形でバージョンを指します。
失敗しているJenkins PROJECTでこの名前を後で参照する必要があります。
注:黄色の警告は、MSBuildフィールドへのパスにファイル名ではなくディレクトリ名を入力する必要があることを意味します。実際には、ここにもファイル名(msbuild.exeなど)を入力する必要があります。そうしないと、ビルドステップが失敗します。
失敗しているJenkinsプロジェクトで、MSBuildビルドステップに進みます。
ビルドステップの最初のフィールドは「MSBuildバージョン」です。 MSBuildバージョンを構成する前にビルドステップを作成した場合、ここでの値は(デフォルト)になります。
1つ以上のMSBuildバージョンを構成した後、ドロップダウンに使用可能な構成が表示されます。必要なものを選択してください。
ここで、上記のインストールに一致する名前付き構成を選択したことがわかります。
Jenkins | Manage Jenkins | Configure System
mSBuildセクションまでスクロールダウンし、MSBuildインストールをクリックします
msbuild.exeへのフルパスを定義し、私のシステムでは3.5とv4.0.30319があります
注-64ビットシステムであっても32ビットツールへのパスを指定すると、エラーメッセージが表示される場合があります。
MSBuild 64ビットを使用したWindows Phoneアプリケーションのビルドはサポートされていません。
だからジェンキンスでは-例えば:
名前:バージョン3.5
パス:C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe
名前:バージョン4.0
パス:C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSbuild.exe
Jenkinsの設定で「msbuild.exe」の絶対パスを設定する必要があると思います。たとえば:
C:\Windows\Microsoft.NET\Framework\v3.5\msbuild.exe
また、msbuild.exeがあるパスを、その特定のジョブを実行しているノードのPATHシステム環境変数に追加することもできます。