1

私は現在、プロジェクトの最終段階にいます。取り組みの一環として、メインの MVC ソリューションを再編成して、1 つのソリューションに 15 の異なるプロジェクトを含めるのではなく、コンパイル済みのライブラリへの参照を使用するようにしました。

私の質問は、Release/Debug スイッチが適用される場所に関するものです。

たとえば、下位レベルのライブラリがデバッグ モードでビルドされ、メインの Web クライアント アプリがリリース モードでビルドされているとします。

プロジェクトはリリース モード (メイン アプリの構成であるため) またはデバッグ モード (メイン アプリはデバッグ モードでコンパイルされたバイナリに依存するため) でビルドされますか?

4

1 に答える 1

2

あなたが説明するシナリオでは、Web プロジェクトは「リリース」アセンブリとしてビルドされ、「デバッグ」アセンブリに依存します。引用符の理由は、"Release" アセンブリと "Debug" アセンブリの唯一の違いは (既定以外のオプションを使用しない限り)、それぞれデバッグ シンボルの除外または組み込み、およびアセンブリ内の IL の最適化であるためです。したがって、デバッグ アセンブリを参照するリリース アセンブリを使用することは、完全に有効な状況ですが、これはおそらくあなたが望んでいる状況ではありません。マシン上で実行されるコードを最適化するために JIT が行う作業が増えるため、実行時のエクスペリエンスが最適化されず、遅くなる可能性があります。

参照アセンブリにデジタル署名するかどうかに応じて、ビルド後のタスクを使用して、プロジェクトの出力用に、デバッグ コンパイル済み参照アセンブリをリリース コンパイル済みアセンブリに置き換えることができます。

(IDE でプロジェクト参照を行うのではなく) DLL をファイルとして参照するための動作上の前提はアセンブリは、含まれる機能のテスト済みの完成版です。

要約すると、プロジェクトのコンパイル方法は、プロジェクトが参照するアセンブリのビルド構成に依存しませんが、可能であれば、代わりにそれらのアセンブリのリリース コンパイル バージョンを参照する必要があります。

于 2012-06-30T08:32:37.300 に答える