1

私はVS2012ソリューションを持っています。プロジェクト A の 1 つは、実行時に .h ファイルを生成します。このヘッダー ファイルは別のプロジェクト B によって使用されます。プロジェクト A とプロジェクト B は同じディレクトリにあります。

ただし、プロジェクト B が再構築を開始すると、C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppClean.targets は、プロジェクト A によって生成されたファイルを削除します。このため、プロジェクト B はファイルを見つけることができませんもうビルドは失敗します。

クリーン ビルド中にファイルが削除されないようにするにはどうすればよいですか? 2 つのプロジェクトを別のディレクトリに移動する必要がありますか?

この問題は、Visual Studio 2008 では発生しないことに注意してください。

4

3 に答える 3

1

このヘッダーは、「ビルド イベント」によって一時 (「中間」) ディレクトリに生成されますか? その場合、プロジェクト B はそれを一時ファイルと見なして削除します。これは、プロジェクト B のクリーンアップが一時ディレクトリでヘッダーを見つけたが、それがプロジェクト A の出力であることを認識していないためです。考えられる解決策:

  • 出力フォルダーを一時フォルダーから分離し、出力フォルダーにヘッダーを生成します。
  • 出力フォルダーと一時フォルダーを一緒に保持しますが、プロジェクト A の出力/一時フォルダーをプロジェクト B のフォルダーから分離します。
  • ビルド イベントではなくカスタム ビルド ステップでヘッダーを生成し、そのヘッダーをステップの出力として指定します。
于 2015-07-28T15:44:06.683 に答える