首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CLR将如何识别可评估的版本更改?

CLR将如何识别可评估的版本更改?
EN

Stack Overflow用户
提问于 2013-05-31 17:05:52
回答 1查看 98关注 0票数 0

这个页面http://support.microsoft.com/kb/556041清楚地解释了AssemblyVersion和AssemblyFile版本之间的区别。

此外,此页面还说明何时更改这两个选项。我还是有个问题,

假设我使用汇编版本1交付了一个.Net组件,现在由于它经常更改,所以我只更改了AssemblyFileVersion。然后我复制我的新组件,CLR如何知道我的程序集版本没有改变。现在两个组件(旧的和新的)都有相同的assemblyVersions,那么CLR将如何识别要使用的组件呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-31 20:28:30

The CLR not to the AssemblyFileVersion (CLR不能正常工作,请注意此命令)。它只是一个参考编号,你可以在Windows资源管理器中看到它。通常的方法是在发货前重新生成程序集时递增它。保持小错误修复分离的方法。

最大的狗是AssemblyVersion,CLR非常关注这一点。当它在运行时找到程序集时,该版本的必须与您用来构建程序的引用程序集匹配。如果没有,则CLR假定发生了DLL地狱,并拒绝运行该程序。这对GAC也很重要,您可以在其中存储多个具有相同名称但不同版本的DLL。这是一个DLL地狱对策。

因此,当您在程序集的公共接口中进行重大更改时,必须递增AssemblyVersion。如果不重新编译或调整以处理更改,则可能会使使用程序集的程序失败。因此,用户将得到一个明确的错误信息,而不是某种难以诊断的异常。或者更糟糕的是,根本没有例外,只是无法诊断的不当行为。

确保AssemblyVersion递增是由您决定的。实际上,这样做并不容易,许多公司在发布更新时会自动递增AssemblyVersion,即使没有更改或更改没有中断。受.NET支持,在属性中使用星号(*)。这样更安全。但是还有一个额外的要求,那就是所有依赖的程序也要更新。这当然不是不寻常的事。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16853658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档