.NET 程序集版本、文化与目标框架详解
1. 版本号与程序集加载
版本号是程序集名称的一部分,因此也是类型标识的一部分。例如, mscorlib 版本 2.0.0.0 中的 System.String 与版本 4.0.0.0 中的同名类型不同。
1.1 .NET 与 .NET Framework 对版本号处理的差异
- .NET Framework :当通过名称加载强命名程序集时(隐式使用其定义的类型或显式使用
Assembly.Load),CLR 要求版本号精确匹配。 - .NET :如果磁盘上的程序集版本号等于或高于请求的版本,就会使用该程序集。
1.2 版本号处理变化的原因
- 依赖外部组件增多 :.NET 开发生态系统依赖 NuGet,依赖大量外部组件变得常见。
- 更新频率增加 :早期 .NET 组件新版本发布间隔长,如今应用中组件版本频繁变化,严格版本控制策略不再适用。实际上,构建系统会自动生成配置文件,有效禁用严格版本控制。
1.3 版本号检查范围差异
.NET Framework 仅对强命名程序集考虑版本号,而 .NET 无论目标程序集是否为强命名,都会检查磁盘上程序集的版本号是否等于或大于所需版本。
超级会员免费看
订阅专栏 解锁全文
1883

被折叠的 条评论
为什么被折叠?



