現在コンパイル中のプロジェクトのために、VS が他の新しくビルドされたアセンブリを検査することに苦しんでいる可能性があります。
アセンブリがビルドされると、VS はターゲット アセンブリの参照を検査します。それらが完全にビルドされているか、新しいバージョンである場合は、.Net ドメインに実際にロードすることが含まれる場合があります。それを実行するつもりです。ビルドは、再ビルドするプロジェクトが増えるにつれて、徐々に遅くなる可能性があります。1 つのアセンブリが新しくなると、他のアセンブリはより多くの作業を行います。これは、単独で構築する場合と、既に構築されている場合と、クリーンに構築する場合とで、一見関連性のある異なる結果が得られる理由の 1 つの考えられる説明です。コンパイルされているものについてではなく、他のものが変更されたことは本当にそうです。
VS は、参照されたアセンブリの最後の「内部」ビルド番号を「マークダウン」し、参照されたアセンブリがビルド プロセスを実行するときに実際に変更されたかどうかを確認します。違いがなければ、大量の作業がスキップされます。はい、制御できない内部アセンブリ ビルド番号があります。これは、実際の c# コンパイラやその作業、またはコンパイル後の何かが原因である可能性は決して高くありませんが、最も一般的なケースで必要なコンパイル前の手順です。
操作できる参照指向の設定がいくつかあります。開発、テスト、または展開のニーズによっては、機能の違いは無関係かもしれませんが、VS の動作方法とビルド中にかかる時間に大きな影響を与える可能性があります。
ソリューション エクスプローラーでいずれかのプロジェクトの参照に移動します。
1) 参照をクリックします
2)そうでない場合はプロパティペインを開きます(プロパティページまたはプロパティマネージャーではありません)
3) 'Copy Local'、'Embed Interop Types'、'Reference Output Assembly' を見てください。それらは非常に適用可能であり、おそらく知っておくとよいでしょう。MSDN で彼らが何をしているのかを調べることを強くお勧めします。「参照出力アセンブリ」は、リストに表示される場合と表示されない場合があります。
4) プロジェクトをアンロードし、VS で .proj ファイルをテキストとして編集します。XML でアセンブリ参照を探し、「プライベート」を探します。これは、参照されているアセンブリが、共有アセンブリではなく、参照アセンブリの観点からプライベート アセンブリであるかのように扱われるかどうかを意味します。これはちょっと言い方が悪いですが、そのアセンブリは、他のアセンブリと一緒にユニットとして展開されます。これは、負担を軽減する上で非常に重要です。背景: http://msdn.microsoft.com/en-us/magazine/cc164080.aspx
したがって、ここでの基本的な考え方は、ビルド中とデプロイ後の両方で、これらすべてを最も安価になるように構成することです。たとえば、それらを一緒に構築している場合、「ローカルにコピー」はおそらく本当に必要ありません。ニーズについて詳しく知らずに、それらをどのように構成する必要があるかについてこれ以上言うのは嫌ですが、それぞれについていくつかの優れた段落を読むことは非常に良いことです. ただし、参照されたものが再構築される前に解決するときに、VS が古くなった古いものを使用するかどうかにも影響するため、これは非常に注意が必要です。これらについて読むのが良いことを説明する別の例として、Copy Localは次のことができます。古いものであってもローカルコピーを使用するため、このセットを持つことは二重に悪い可能性があります。現時点での目標は、VS が新しくビルドされたアセンブリ jsut をロードして他のアセンブリをコンパイルする負担を軽減することであることを覚えておいてください。
最後に、今のところ、わずか 1.5 分のハングアップは非常に幸運であると簡単に言えます。このようなことにより、ビルド時間がはるかに悪い人がいます;)