私も説明されているのと非常によく似た問題を抱えていますここ。
また、C++/CLI と C# プロジェクトの混合ソリューションを Visual Studio 2008 から Visual Studio 2010 にアップグレードしました。そして現在、Visual Studio 2010 では 1 つの C++/CLI プロジェクトが常に古くなります。
直前にコンパイルおよびリンクされていても、F5ヒットすると、「プロジェクトが古くなっています。ビルドしますか?」というメッセージ ボックスが表示されます。DLL ファイルは非常に低層であり、ソリューションのほぼすべてのプロジェクトを再構築する必要があるため、これは非常に煩わしいです。
私のpdb設定はデフォルト値に設定されています(この問題の解決策を提案する)。
Visual Studio 2010 が再構築を強制したり、プロジェクトが最新であると判断する理由を知ることは可能ですか?
Visual Studio 2010 がそのように動作する理由について、他に何か考えはありますか?
ベストアンサー1
Visual Studio/Express 2010 のみ対象です。VS2012、VS2013 などについては、他の (より簡単な) 回答を参照してください。
見つけるには不足しているファイル記事の情報を使用するC++ プロジェクト システム ログを有効にするVisual Studioでデバッグログを有効にしてただあなたに伝えます再構築の原因は何ですか:
- ファイルを開きます
devenv.exe.config
(%ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE\
または にあります%ProgramFiles(x86)%\Microsoft Visual Studio 10.0\Common7\IDE\
)。Express バージョンの場合、構成ファイルの名前は ですV*Express.exe.config
。 次の行の後に次のコードを追加します
</configSections>
。<system.diagnostics> <switches> <add name="CPS" value="4" /> </switches> </system.diagnostics>
- Visual Studioを再起動します
- 開けて表示デバッグ出力をキャプチャしていることを確認します
- デバッグを試みる(Visual StudioでF5キーを押す)
デバッグ ログで次の形式の行を検索します。
devenv.exe 情報: 0: ビルド入力 'Bla\Bla\SomeFile.h' が見つからないため、プロジェクト 'Bla\Bla\Dummy.vcxproj' は最新ではありません。
(Ctrl+F を押して検索しました
not up to date
) これらは、プロジェクトが永久に「古い」状態になる原因となる参照になります。
これを修正するには、プロジェクトから不足しているファイルへの参照を削除するか、参照を更新して実際の場所を示します。
注: 2012 以降を使用している場合、スニペットは次のようになります。
<system.diagnostics>
<switches>
<add name="CPS" value="Verbose" />
</switches>
</system.diagnostics>