我正在了解 .NET 程序集版本号。在寻找何时更改程序集版本号时,我遇到了“重大更改”一词。我相信“重大变革”是一个广阔的领域,我知道重大变革的可能性很小:
- 界面变了
- 暴露方法改变
请帮助我确定可被视为重大更改的任何其他可能性。
我正在了解 .NET 程序集版本号。在寻找何时更改程序集版本号时,我遇到了“重大更改”一词。我相信“重大变革”是一个广阔的领域,我知道重大变革的可能性很小:
请帮助我确定可被视为重大更改的任何其他可能性。
我不知道我是否可以给出一个详尽的列表,但是每当您更改可见类型或类型成员(如方法、构造函数、属性、事件等)的语义或功能时,这将是一个重大更改。
如果一个类型或成员是public
or protected
(包括protected internal
),那么它在您的程序集中是“可见的”,并且所有包含类型(该程序元素“位于”内部的类和结构)也是public
or protected
。
此外,如果您更改成员的“正式”外观,例如将字段更改为属性,或更改方法、属性、事件等的(返回)类型,或更改方法的签名,包括更改可选参数或其默认值。在某些情况下,向现有方法添加新的重载可能是一项重大更改,例如消费代码的调用可能会变得模棱两可。
以任何方式更改枚举的“字段”(命名常量),无论是重命名还是更改顺序,都是一项重大更改,就像更改const
字段的值一样。
根据.NET and Compatibility: Breaking Changes in a Managed World (Kit George),微软曾经有一份文档“定义”了这个术语。不知道它是否仍然存在,或者它是否有用。