アプリケーションでコードコントラクトを使用する場合、アセンブリをGACに配置したり、本番サーバーでコードコントラクトインストールパッケージを実行したりするなど、本番サーバーに(コードコントラクトパッケージから)何かをインストールする必要がありますか?
または、ライブラリをbinフォルダに配置するだけで機能しますか?
アプリケーションでコードコントラクトを使用する場合、アセンブリをGACに配置したり、本番サーバーでコードコントラクトインストールパッケージを実行したりするなど、本番サーバーに(コードコントラクトパッケージから)何かをインストールする必要がありますか?
または、ライブラリをbinフォルダに配置するだけで機能しますか?
あなたの質問にリンクされているコード契約サイトから:
コントラクトは、外部APIと内部APIのチェックされたドキュメントとして機能します。コントラクトは、ランタイムチェックによるテストの改善、静的コントラクト検証の有効化、およびドキュメントの生成に使用されます。
私が間違っている場合は訂正してください。ただし、コードコントラクトは開発時の補助としてのみ設計されていると思います。したがって、展開/本番用のアセンブリをコンパイルするときに、これらを無効にすることをお勧めします。
これは古いスレッドだと思いますが、質問はまだ有効です...
.NET 4.0 の使用を想定すると、System.Diagnostics.Contract クラスは既に mscorlib.dll に含まれています。したがって、どこにでもインストールする必要があるのは、.NET 4.0 ランタイムだけです。
CodeContracts パッケージを開発マシンと、バイナリを IL にコンパイルするその他のマシン (つまり、VisualStudio、csc.exe を使用した msbuild - C# コンパイラなど) にインストールするだけで済みます。そのインストール パッケージには、いくつかの .exe が含まれています。それらの 1 つが「ccrewrite.exe」です。これは、コンパイラの完了後に IL コードをアセンブリに挿入する IL リライターです。ccrewrite と、使用している言語に使用する .NET コンパイラは、関連も接続も依存関係も共有していないことに注意してください。
バイナリがコンパイルされたら、コードを実行するサーバーに何かをインストールまたはデプロイする必要はありません。これは、プロジェクト設定で構成したオプションに関係なく当てはまります。
CodeContract 参照アセンブリは、コントラクトをソリューションの外部にあるライブラリ/API に公開する必要があり、そのプロジェクトで静的チェックが有効になっている場合にのみ使用されます。また、それらを直接参照しないでください。また、それらを任意の bin フォルダーにコピーするためのビルド後の手順も必要ありません (別のライブラリ/API にそれらを公開することについて言及した場合を除きます)。
HTH
それらを bin/ フォルダーに入れるだけで十分なはずです。
数週間前にこのようなことをしました。チャート エンジンの試用版をダウンロードし、.dll を lib フォルダーに置き、それらへの参照を Web プロジェクトに追加しました。
以前は、Web サイトをデプロイするときに Visual Studio で「発行」オプションを使用していたので、アップロードするクリーンなビルドが得られました (現在はビルド サーバーがあります)。
コンポーネントを購入することを決定するまで、これはすべて完全に機能し、インストールし、移動/インストールしたすべてのアセンブリをGACに追加しました。アセンブリを取得して lib フォルダーに配置し、参照を再度追加しました。
新しいチャート エンジン アセンブリを使用してプロジェクトの更新を公開することを決定するまで、すべてが正常に機能しています。サイトが動かなくなった!:(
短時間のデバッグの後、チャート エンジンの新しい .dll が GAC にあるため、bin フォルダーに出力されないことがエラーであることがわかりました。しかし、サーバーに公開したとき、それらはそこにないので、問題を修正するためにそれらをコピーしただけで、すべてが再び魅力的に機能しました.