1

CCnet から Jenkins で実行する MSBuild スクリプトを移植しています。MSBuild プロジェクトは、展開パッケージの作成に使用されます。このプロセス自体を Jenkins に任せたいのですが、それは長期的な目標です。

私が抱えている問題は、(タイトルのように) HgPull ターゲットを使用しようとすると、MSBuild mecurial タスク ( http://msbuildhg.codeplex.com/ ) からエラー メッセージが表示されることです。

HgProcessException: コマンド hg.exe は使用できません [プロジェクトへのパス]

プロジェクトの Web サイトで、LibraryLocation プロパティをターゲットに追加することで誰かが解決したことを見てきましたが、違いはないようです。私のターゲットは現在次のようになっています。

ターゲット名="UpdateSources">

<HgPull
        LibraryLocation="C:\Program Files\TortoiseHg\hg.exe"
        Force="true"
        Update="true"
        LocalPath="$(SourcePath)" 
        />

<HgUpdate
        LibraryLocation="C:\Program Files\TortoiseHg\hg.exe"
        Clean="true"
        LocalPath="$(SourcePath)" 
        />

私はむしろ途方に暮れています。この問題を解決するために、この投稿にさらに情報を追加する必要がある場合はお知らせください。私は MSBuild にまったく慣れていないので、どこから調査を開始すればよいかわかりません。

編集:

言い忘れたことの 1 つは、ビルド サーバーのコンソール ウィンドウで MSbuild コマンドを実行しようとしても、同じ結果が得られることです。CCNet で正常に動作することを考えると、これは本当に奇妙です。このコマンドを動作させるために、CCNet はどのような魔法を行っているのでしょうか?

4

2 に答える 2

1

これは現在解決されていますが、残念ながら、これらを修正するためにどのような変更を加えたのかわかりません。パス区切り記号と、それらが構成ファイルの別の部分の末尾にあるかどうかにかかっている可能性があると思います。末尾のスラッシュの有無にかかわらずパスを指定する必要があるアプリケーション間の回復力/一貫性の欠如に悩まされています。

于 2013-04-03T13:59:35.923 に答える
0

ちょっと考えただけですが、'C:\Program Files\TortoiseHg' をシステム パスに追加してみてください。おそらくCCNetは、Jenkinsがアクセスできない場所を指定しています。

また、念のため、hg.exe が実際にその場所に存在することを確認してください。

于 2013-03-15T13:02:25.940 に答える