当前位置: 备案域名出售 > 建站教程>正文

装配件和版本

Win32体系结构中当前有两个问题,被称之为DLL Hell。在DLL Hell中,没有控件实体负责安装到系统的所有DLL文件。关于COM DLL的信息存在注册中,这些信息会很容易地被别的应用程序改写。对于非COM DLL的DLL,在注册表中没有任何对应于它的项。应用程序的安装程序也可以改写已存在的DLL。这样做会严重破坏一些现有的应用程序,这些应用程序调用方法时依靠特定DLL执行具体的函数。

Win32有一个特殊的问题,即在组件间没有系统级的版本规则实现。这个问题只好依靠良好的编程习惯去解决,即一旦发布了接口,它就永远不能再改变了——但在操作系统中又没有什么可以明确预防这一点。另一个问题是应用程序没有一个通用的方式来说明它需要特定组件的版本。只好由开发人员在将DLL调入应用程序前对DLL版本进行检验。如果没有进行检验,应用程序发现了不同的版本,那么它所依靠的代码可能已不存在了,或者说它可能不执行应用程序所期望的函数。为了改变这些情况,windows添加了系统文件保护。这是一个OS功能,能够防止任何的安装程序改写任何系统DLL。

CLR扩展了这种支持,它允许开发人员制定希望应用程序使用的组件的特定版本。CLR提供了所有的支持以确保为调用组件的应用程序定位并使用正确的版本。实际运用时,它还允许在两个相似的组件中执行代码——这两个组件仅在版本上有所差异,这称为并排执行。

« 上一篇下一篇 »