7

40 ほどのプロジェクト (C# + 1 つの C++/CLI) を含む Visual Studio 2010 ソリューションがあります。デバッグを開始する前にソリューション全体をビルドするように Visual Studio を構成しました。

ここで、他のプロジェクトが依存していない「リーフ」プロジェクトのコードを変更するとします。ソリューションを明示的に段階的に (F6またはF7) ビルドすると、ソリューション内の各プロジェクトのビルド出力行が表示されます。ただし、最新のプロジェクトは再コンパイルされていません。たとえば、プロジェクトの警告は表示されません。時間がかかります(おそらく5〜10秒)。

ここで、同じファイルを再度変更して、デバッグを開始するとします ( F5)。今、何か違うことが起こります。変更されたプロジェクトのみが再コンパイルされ(1秒程度かかります)、ほぼ瞬時にデバッグが開始されます。

Visual Studio にはインクリメンタル ビルド用の 2 つの戦略があるようで、最適化された最適なものは、デバッグ セッションの副産物としてのみ利用できるようです。

質問:

デバッグ セッションを開始せずに、このより最適化されたビルド戦略を手動で呼び出す方法はありますか?

4

1 に答える 1

2

デバッグすると、デバッグされるプロジェクトのみがビルドされます。ソリューションをビルドすると、ソリューション内のすべてのプロジェクトがビルドされます。実際に何もコンパイルされていない場合でも、各プロジェクトに関連するチェックがあります。ビルドプロセスのこれらのステップは、コンパイルアクションが実行されない場合でも、ソリューションのビルドに時間がかかる理由です。

[ツール]->[オプション...]に移動し、[プロジェクトとソリューション]-> [ビルドと実行]の下を見ると、 MSBuildプロジェクトビルドの出力の詳細度と呼ばれる設定があります。これを標準以上に設定すると、実際に何が起こっているのかをより深く理解できます。ビルドとデバッグ。その設定からの情報を表示するには、[出力]ウィンドウを表示し、ビルド出力を表示するように設定する必要があります。

Shift + F6を押すと、現在のプロジェクトをビルドできます。これは同じ速度である必要があります。

于 2011-05-22T04:37:01.547 に答える