Visual Studio 2012(バージョン11.0.50727.1)に2つのC++プロジェクトがあります。プロジェクトBは、プロジェクトプロパティ>共通プロパティ>フレームワークと参照を介してプロジェクトAに依存します。
Bで再構築を行うと、プロジェクトAのlibが出力ディレクトリに生成されないため、Bは失敗します。ログには、Aが正常にビルドされていることが示されていますが、libは表示されません。
本当に奇妙な部分は、「再構築」ではなく「クリーンしてから構築」を実行すると、すべてが正しく機能することです。同様に、プロジェクトAはそれ自体で正常にビルドされ、.libを生成します。残念ながら、私が使用しなければならないビルドシステムは「再構築」を行うことになり、可能であればそれを変更したくありません。
私が試したこと
フレームワーク参照を削除し、Bにリンカー依存関係としてlibを追加しようとしました。この場合、Aはまだビルドに失敗したため、参照が欠落していました。
私はしばらくの間SOとグーグルで検索しましたが、今のところ不足しています。
似たようなものに遭遇したことがある場合はお知らせください。