如果我有一个具有一定数量的公共类的类库(本例中为5个),并且我有3个依赖于此库的项目(对于此示例),我决定更改其中一个类,但只有1个这三个项目取决于该课程。
我是否需要编译/链接/部署所有3个项目?
.NET基本上依赖于类的名称还是具有某种类型的寻址依赖? (我有一个c ++背景,所以我知道在c ++中我将不得不重新部署所有3个项目。)
答案 0 :(得分:2)
如果类继承自接口,并且您不更改接口(但只更改类实现),那么如果它们仅依赖于与该类通信的接口,则不必更改依赖程序集。
如果更改依赖程序集所依赖的类的API(如方法签名或名称),则必须修复依赖程序集以使用新API。这包括对类本身名称的更改。
因此,关键是提供稳定的API。如果更改API,则必须更改依赖于API的代码。如果程序集不依赖(即它不依赖于您正在更改的任何API依赖项),那么您不必重新部署它。
答案 1 :(得分:0)
如果重新编译类库项目,创建一个新的DLL,则不必重新编译不依赖于DLL更改的项目:
如果您的依赖项目不需要DLL的特定版本号或版本范围,则版本考虑不适用。