3

如果我有一个包含一定数量公共类的类库(本例为 5 个),并且我有 3 个依赖于该库的项目(对于本例),我决定更改其中一个类,但只有 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 回答