複数の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とコマンドラインの間にこのような動作の違いがある理由は何ですか?
をプロンプト私はあなたが%WORKSPACE%の –
のようなプレースホルダを使用して、解決への絶対パスを指定することがあると思います私はコマンドがJenkinsによって同じ作業ディレクトリから実行されていることを確認しました。あなたのコメントはまだ適用されますか?私はあなたが何を意味するか100%は確信していません。 – Kohanz