2013-02-11 24 views
5

複数のC++ .vcprojがあるVS .slnをビルドしようとしています。ソリューションファイルはCMakeを使用して生成され、私はJenkins(CMake Builderプラグインを使用)でこの部分を処理しています。ソリューションファイルをビルドするには、msbuildを使用しています。私は、Visual Studio、次のコマンドを使用して、コマンドラインからの両方を使用してソリューションを構築することができる午前:これは(ジェンキンスが存在するのと同じマシン上で)正常にビルドMsbuildはVSとコマンドライン経由で動作しますが、Jenkins経由では失敗します。

C:\Jenkins\workspace\SonioTest>"C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe" /t:Rebuild bin/SonIO.sln 

しかし、私はJenkinsでビルドのこの部分を自動化しようとしており、ビルドにはいくつかのエラーC1083"Cannot open source file: '..\path\to\file.ext': No such file or directory)が失敗してしまいます。私はJenkins msbuildプラグインと同じ結果を持つ "Execute Windows batch command"ビルドステップとしてターミナルで動作する全く同じコマンドを使用してみました。

Windowsバッチコマンドのビルドステップを使用している場合、私は、コマンドが実行されていることをログで確認できます。

C:\Jenkins\workspace\SonioTest>"C:\Windows\Microsoft.NET\Framework\v4.0.30319 msbuild.exe" /t:Rebuild bin/SonIO.sln

...は、コマンドラインから作品1とまったく同じです、などがあります。

私はJenkinsをサービスとして実行しており、サービスログオンは自分のアカウントとして(管理者権限で)持っています。どの人がJenkinsがバッチコマンドを実行するディレクトリを知っていますか?

Jenkinsとコマンドラインの間にこのような動作の違いがある理由は何ですか?

+0

をプロンプト私はあなたが%WORKSPACE%の –

+0

のようなプレースホルダを使用して、解決への絶対パスを指定することがあると思います私はコマンドがJenkinsによって同じ作業ディレクトリから実行されていることを確認しました。あなたのコメントはまだ適用されますか?私はあなたが何を意味するか100%は確信していません。 – Kohanz

答えて

1

VSビルドについてよく知らなくても、ほとんど環境設定のように見えます。

私の最初のアドバイスは、Jenkinsでは、goodコマンドを実行したディレクトリと同じディレクトリにディレクトリを変更してから試してみることです。

また、Jenkinsをスタンドアロンアプリとして実行してみてください。

サービスとして、サービスが「デスクトップとやりとりする」ことを可能にするかもしれません。

私は

+0

私はJenkins以外のコマンドと同じ作業ディレクトリから実行されていることを確認しました。自分自身(管理者)のユーザーアカウントを指定しているので、「デスクトップとの対話」チェックボックスはグレー表示されています。 – Kohanz

+0

Jenkinsをサービスとしてではなくプロセスとして実行しようとしましたか? –

3

...これは良いリードであると思いますこれは、多くの解決策として、回避策ですが、私はdevenv代わりのmsbuildを使用して終了し、それが正常に動作します。

これは環境問題として強く示唆されていますが、VSをビルドサーバーにインストールするのは問題ではないため、私はmsbuildウサギの穴に費やす時間を節約することにしました。

1

Jenkinsスレーブエージェントが、プロンプトから同じコマンドラインを実行するときに使用するのと同じ環境ではないアカウントによって使用されている環境。 2つの環境を比較し、違いをメモしてから、それらをJenkinsジョブに追加します。

実行中にスレーブの環境を得るために、それはWindowsのコマンドから「設定」ん持って

+0

私はこれを(devenvに切り替える前に)行いました.Jenkinsのスレーブ環境は、私のコマンドライン環境のスーパーセットのほとんど(完全ではない)でした。私は、コンパイル(VC ...)と関連する変数を詳しく調べましたが、Jenkinsのスレーブは余分なものを持っていました。私は助けに感謝します、しかし、私はdevenv.exeから切り替える魅力的な理由がない限り、私はむしろ調査にもっと時間をとらえたくないでしょう。 – Kohanz

関連する問題