对强名称程序集进行哪些更改需要更改AssemblyVersionAttribute?显然,以可能需要客户端进行代码更改的方式更改公共API需要增加AssemblyVersion。但是,对于不需要在客户端中进行代码更改的公共API的更改呢?例如:
必须在MSDN上的某个地方有明确的文档(或者,在某些MSSE的个人博客上了解MS)。但我根本找不到它。请帮忙!
答案 0 :(得分:5)
答案 1 :(得分:4)
这很简单......只要类型保持不变(在公共或受保护的布局中)并且方法签名没有改变(添加方法或类型很好),JIT应该能够很好地链接DLL。
那就是说,我认为即使它 工作,你也不应该这样做。如果需要,创建一个新版本并使用策略将旧版本映射到新版本。否则你会直接回到DLL地狱......而且我很确定你不想那样。
答案 2 :(得分:1)
向接口添加方法应该没有问题,因为旧的提供程序不会实现新方法。
答案 3 :(得分:1)
Microsoft在Service Pack版本的.NET库中添加新方法/类,而不更改AssemblyVersion(仍为2.0.0.0 / 3.0.0.0)。 Microsoft仅更改AssemblyFileVersion。 例如,在.NET 2.0 SP1中,添加了DateTimeOffset结构。
是否应该向我们推荐这种做法,因为Microsoft会这样做? 这很令人困惑。