複数の C++ .vcproj を含む VS .sln をビルドしようとしています。ソリューション ファイルは CMake を使用して生成され、この部分は Jenkins で (CMake ビルダー プラグインを使用して) 動作しています。ソリューション ファイルをビルドするために、msbuild を使用しています。次のコマンドを使用して、Visual Studio とコマンド ラインの両方を使用してソリューションをビルドできます。
C:\Jenkins\workspace\SonioTest>"C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe" /t:Rebuild bin/SonIO.sln
これは正常にビルドされます (Jenkins が存在する同じマシン上で)。
ただし、ビルドのこの部分を Jenkins で自動化しようとすると、ビルドがいくつかのC1083
エラーで失敗します ( "Cannot open source file: '..\path\to\file.ext': No such file or directory
)。Jenkins msbuildプラグインの両方を使用して、ターミナルで「Windowsバッチコマンドを実行」ビルドステップとして機能するまったく同じコマンドを使用してみましたが、同じ結果が得られました。
Windows バッチ コマンド ビルド ステップを使用すると、コマンドが実行されていることがログに表示されます。
C:\Jenkins\workspace\SonioTest>"C:\Windows\Microsoft.NET\Framework\v4.0.30319 msbuild.exe" /t:Rebuild bin/SonIO.sln
...作業ディレクトリを含め、コマンドラインから動作するものとまったく同じです。
Jenkins をサービスとして実行しており、サービスを自分のアカウントとして (管理者権限で) ログオンしています。Jenkinsがバッチコマンドを実行するディレクトリを知っている人はいますか?
Jenkins とコマンド ラインでこの動作の違いが見られる理由はありますか?