質問: 初めて質問するので、何かお作法が間違っていたらすみません。 質問はタイトルの通りで、詳細は以下に記載しています。 何か些細な情報、試せることをご教示していただければ助かります。 ### 事前情報 * Linuxサーバ: Jenkinsをインストール * Windows10の端末: ビルドサーバとして使用 ### やりたいこと Jenkinsからビルドサーバにbashのsshコマンドを使用し、MsbuildでWindows driverのビルドをするバッチファイルを実行し、ビルドを成功させたい。 ### 困っていること 実行すると以下のエラーが発生し、ビルドが失敗するので解決策を教えてほしい。 ### エラー内容 ``` C:\Program Files (x86)\Windows Kits\10\build\WindowsDriver.common.targets(615,5): error MSB4061: "DPVerifierTask" タスクを "C:\hogehoge\Microsoft.DriverKit.Build.Tasks.PackageVerifier.16.0.dll" からインスタンス化できませんでした。 C:\Program Files (x86)\Windows Kits\10\build\WindowsDriver.common.targets(615,5): error MSB4061: System.NullReferenceException: オブジェクト参照がオブジェクト インスタンスに設定されていません。 C:\Program Files (x86)\Windows Kits\10\build\WindowsDriver.common.targets(615,5): error MSB4061: 場所 Microsoft.DriverKit.Build.Tasks.DriverPackageVerifier.DPVerifierTask..ctor() C:\Program Files (x86)\Windows Kits\10\build\WindowsDriver.common.targets(615,5): error MSB4060: "DPVerifierTask" タスクが宣言されたか、正しく使用されなかったか、または作成中に失敗しました。タスク名とアセンブリ名のスペルを確認してください。 プロジェクト "hogehoge.vcxproj" 内のターゲット "InfVerif" のビルドが終了しました -- 失敗。 ``` ### 実行コマンド * シェル(Jenkins) ``` ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no user@domain /c/hogehoge/build.bat ``` * バッチファイル(ビルドサーバ) ``` msbuild hogehoge.sln /t:Rebuild /p:Configuration=Release;Platform=x64 ``` ### 行ったこと * ビルドサーバにリモートデスクトップで接続し、手動でバッチを実行したところ成功する * ローカルのWindows10端末でgit bashからsshでバッチファイルを実行した場合は、Jenkinsの場合と同じでエラーになる
回答: MSBuildはOS付属とVisual Studio付属と、複数インストールされています。どちらを実行されていますでしょうか? より具体的には、それぞれのMSBuildを実行した際の`PATH`を含む環境変数の設定は一致しているのでしょうか? 例えば質問文に > > * ビルドサーバにリモートデスクトップで接続し、手動でバッチを実行したところ成功する > > > とありますが、Developer Command Prompt等の特別に環境変数が設定された環境から実行したりしていないでしょうか?