Incredibuild ツールを使用してビルドしようとしている Visual Studio ソリューションがあります。ソリューションの 2 つのプロジェクトは連携して動作します。最初のプロジェクト (「プロジェクト A」と呼びます) は、2 番目 (「プロジェクト B」) のデータ ファイルを解析して生成する実行可能ファイル (foo.exe) をビルドします。いくつかのヘッダー ファイル。
明らかに、プロジェクト B で定義されたプロジェクト A への依存関係があります。プロジェクト B で Incredibuild の [プロジェクトの再構築] オプションを使用すると、プロジェクト A が正しくビルドされ、foo.exe が正常にビルドされます。プロジェクト B にはカスタム ビルド ツール ファイルがあり、解析対象のファイルへのコマンド ライン引数を指定して foo.exe を実行する必要があります。ただし、この方法で foo.exe を起動しようとすると、常にエラーが返されます。
カスタムビルド:
走るフー
「実行ファイル\foo.exe へのパス」は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されません。
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(171,5): エラー MSB6006: "cmd.exe" がコード 9009 で終了しました。
興味深いことに、次に Incredibuild を使用してプロジェクト Bのみをビルドすると(つまり、Build Project オプションを使用して)、すべて問題ありません。以前の失敗したビルドでビルドされた場所から foo.exe が正しく選択されます。これにより、少なくともパスは問題ないと思います。
再構築の一部として実行可能ファイルを実行できない理由を誰かが提案できますか? foo.exe がファイル システムに認識される前にプロジェクト B が開始されるなど、タイミングの問題ですか??
Visual Studio の通常の (再) ビルドですべて動作します。失敗するのは Incredibuild の再構築だけです。コマンド ラインからではなく、Visual Studio IDE を使用してこれらすべてを実行していることに注意してください。
編集: これは私が使用している Incredibuild の景品バージョン (Visual Studio に付属するもの) であるため、ビルドはすべてローカル マシン上にあります。