web-dev-qa-db-ja.com

Jenkinsがmsbuildを見つけることができません

JenkinsをWindowsServer 2012にインストールしましたが、すべて正常に機能しました。ただし、MSBuildおよびVSコードメトリクスプラグインを構成しようとすると、次のエラーが発生します。

C:\ Windows\Microsoft.NET\Framework\v3.5\msbuild.exeはJenkinsマスターのディレクトリではありません(ただし、一部のスレーブには存在する可能性があります)

パスを確認しましたが、パスは正しいのですが、Jenkinsはパスにアクセスできません。

誰かが何が間違っているのか提案できますか?.

ありがとう

10
 C:\ Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe [。 ]

Jenkinsは、その要件について非常に事実上嘘をついていました。 MSBuild.exeis実行可能ファイルであり、レポートどおりのディレクトリではありません。入力ボックスexpects MSBuild.exeを含むフォルダーを識別しますただし、実行されるジョブ MSBuildは、ファイル名を指定していることを想定しています。ジョブと構成マネージャーの間のこの不一致を回避する方法は、「プラグインの追加」ページの検証要件を満たすために、Add the MSBuild入力に実行可能ファイルの名前を指定せずにPath to MsBuildプラグイン構成を行うことです。

プラグインを追加したら、Path to MsBuildを変更して、実行可能ファイルの名前(もちろん、MSBuild.exe)を含めることができます。検証エラーではなく、警告が表示されます。

警告を無視します。 
とにかく保存してください。 

プラグインの追加に必要な初期検証をバイパスし、「正常に機能」します。

Save it anyway

他のポスターで言及されているように、Jenkinsサービスは、「デスクトップとの対話を許可する」ことにより、ファイルシステムへのアクセスを許可する必要があります。 Jenkins service

ただし、主な問題は、プラグイン構成が構成を使用するエージェントと競合することです。プラグインを使用してビルドを実行するには、回避策を使用する必要があります。

16
K. Alan Bates

私は同じ問題を抱えていました、私にとっての解決策は:

JenkinsをWindowのサービスとして実行している場合は、サービスがデスクトップと対話できるようにする必要があります。以下をせよ:

サービスモジュールを開きます(押す:WindowsKey + R> Services.msc)

  1. Jenkinsサービスを右クリックし、[プロパティ]を選択します
  2. [ログオン]タブで、[ローカルシステムアカウント]として実行し、[サービスにデスクトップとの対話を許可する]チェックボックスをオンにします

-OR-

コマンドラインからJenkinsを実行するだけで実行できます。つまり、「Java -jarjenkins.war」(jenkins.warファイルはJenkinsインストールディレクトリにあります)。

乾杯、

J。

6
Jibrilat

警告を回避するために、パスのmsbuild.exeの末尾から拡張子「.exe」を削除します。C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild

5
Fred Jand

したがって、Jenkinsを備えた2つのサーバーがあります。1つはマスター(msbuildがありません)で、もう1つはスレーブ(これにはmsbuildがあります)です。ジョブが(マスターで)実行されると、msbuildステップはマスターに存在しないため、失敗します。

マスターではなく、msbuildを使用するサーバーでのみジョブを実行するように強制する必要があります。これを行う方法は次のとおりです。

  1. Msbuildがインストールされているノードの構成を開きます
  2. Labelsフィールドにmsbuildを追加します
  3. ノード構成を保存します
  4. ジョブ構成を開きます
  5. プロジェクトの詳細オプションセクションのすぐ上にあるこのプロジェクトを実行できる場所を制限するチェックボックスを見つけてチェックします
  6. ラベル式フィールドにmsbuildを追加します
  7. ジョブを保存する
  8. 仕事を作る
3
JZimmerman

上手

  • C:\Windows\Microsoft.NET\Framework\v3.5\マスターサーバーに存在しますか?
  • Jenkinsユーザーにはこのフォルダーへのアクセス許可がありますか?
0
Slav

この問題は1.26リリースで解決されたようです: JENKINS-28679

0
BogeyMan

「...はJenkinsマスターのディレクトリではありません...」というエラーメッセージも表示されますが、ビルドしようとするととにかく機能します。

(デフォルト)の代わりに、プロジェクトのMSBuildバージョンを選択することを忘れないでください。

参照: MSBuildを使用してJenkinsで.netアプリケーションをビルドする

0
StevenGodin