3

特定の数のパブリック クラス (この例では 5 つ) を持つクラス ライブラリがあり、このライブラリに依存する 3 つのプロジェクト (この例では) があり、クラスの 1 つを変更することにしましたが、3 つのうちの 1 つだけを変更することにしました。プロジェクトはそのクラスに依存します。

3 つのプロジェクトすべてをコンパイル/リンク/デプロイする必要がありますか?

基本的に、.NET はクラスの名前に依存しますか、それともある種のアドレス指定の依存関係を持っていますか? (私は C++ のバックグラウンドを持っているので、C++ では 3 つのプロジェクトすべてを再デプロイする必要があることを知っています)。

4

2 に答える 2

2

クラスがインターフェイスから継承され、インターフェイスを変更しない (クラスの実装のみを変更する) 場合、依存アセンブリがクラスとの通信をインターフェイスのみに依存している場合は、依存アセンブリを変更する必要はありません。

依存アセンブリが依存するクラスの API (メソッド シグネチャや名前など) を変更する場合は、新しい API を使用するように依存アセンブリを修正する必要があります。これには、クラス自体の名前の変更が含まれます。

したがって、ここで重要なのは、安定した API を提供することです。API を変更する場合は、API に依存するコードを変更する必要があります。アセンブリが依存していない場合 (つまり、変更する API 依存関係に依存していない場合)、アセンブリを再デプロイする必要はありません。

于 2013-01-14T18:05:46.773 に答える
0

クラス ライブラリ プロジェクトを再コンパイルして新しい DLL を作成する場合、DLL への変更に依存しないプロジェクトを再コンパイルする必要はありません。

  • 各プロジェクトが依存するパブリック インターフェイスは、破壊的な方法で変更されません。
  • プロジェクトは、DLL の新しいバージョン番号と互換性があります。

依存プロジェクトが DLL の特定のバージョン番号またはバージョン範囲を必要としない場合、バージョンに関する考慮事項は適用されません。

于 2013-01-14T18:06:00.400 に答える