如果类更改,是否需要重新编译和重新部署项目中的所有程序集?

时间:2013-01-14 18:02:16

标签: c# .net

如果我有一个具有一定数量的公共类的类库(本例中为5个),并且我有3个依赖于此库的项目(对于此示例),我决定更改其中一个类,但只有1个这三个项目取决于该课程。

我是否需要编译/链接/部署所有3个项目?

.NET基本上依赖于类的名称还是具有某种类型的寻址依赖? (我有一个c ++背景,所以我知道在c ++中我将不得不重新部署所有3个项目。)

2 个答案:

答案 0 :(得分:2)

如果类继承自接口,并且您不更改接口(但只更改类实现),那么如果它们仅依赖于与该类通信的接口,则不必更改依赖程序集。

如果更改依赖程序集所依赖的类的API(如方法签名或名称),则必须修复依赖程序集以使用新API。这包括对类本身名称的更改。

因此,关键是提供稳定的API。如果更改API,则必须更改依赖于API的代码。如果程序集不依赖(即它不依赖于您正在更改的任何API依赖项),那么您不必重新部署它。

答案 1 :(得分:0)

如果重新编译类库项目,创建一个新的DLL,则不必重新编译不依赖于DLL更改的项目:

  • 每个项目所依赖的公共接口不会以破碎的方式改变。
  • 项目仍然与DLL的新版本号兼容。

如果您的依赖项目不需要DLL的特定版本号或版本范围,则版本考虑不适用。