使用 manifest 文件搜索依赖 DLL
生成 C/C++ 并行程序集
Visual Studio 2005
其他版本
side-by-side assembly是应用程序在运行时可使用的资源的集合,如一组 DLL、Windows 类、COM 服务器、类型库或接口。在 Visual C++ 2005 中,已将 ATL 库、MFC 库、标准 C++ 库和 CRT 库重新打包到若干个并行程序集中,这些程序集可以通过 Visual C++ 应用程序重新发布为共享或私有程序集。有关更多信息,请参见Visual C++ Libraries as Shared Side-by-Side Assemblies。将 DLL 重新打包到程序集中的主要优点是,应用程序可以同时使用程序集的多个版本,且发布更新时可以为当前已安装的程序集提供服务。 Visual C++ 应用程序可以在它的不同部分使用一个或若干个 DLL。运行时,会将这些 DLL 加载到主进程并执行所需的代码。应用程序依赖操作系统来定位所需的 DLL,了解必须加载的其他依赖 DLL,然后将它们与所需的 DLL 一起加载。在早于 Windows XP 和 Windows 2003 版本的 Windows 操作系统上,操作系统加载程序会在应用程序的本地文件夹或系统路径指定的另一个文件夹中搜索依赖 DLL。在 Windows XP 和 Windows 2003 上,操作系统加载程序还可以使用manifest文件搜索依赖 DLL,并搜索包含这些 DLL 的并行程序集。 默认情况下,在使用 Visual Studio 2005 生成 DLL 时,该 DLL 会有一个作为 RT_MANIFEST 资源(ID 等于 2)嵌入的application manifest。正如可执行文件一样,此清单描述该 DLL 在其他程序集中的依赖项。此处假定此 DLL 不是并行程序集的一部分,且依赖于此 DLL 的应用程序将不会使用应用程序清单加载此 DLL,而是依靠操作系统加载程序在系统路径中查找此 DLL。
通过相应的assembly manifest,可以将一个或若干个相关 DLL 重新包装到并行程序集中,该清单用于描述构成此程序集的文件、以及此程序集对于其他并行程序集的依赖性。 此更改允许将相应的 DLL 作为private assembly部署到应用程序本地文件夹中,或作为shared assembly部署到 WinSxS 程序集缓存中。若要使此新程序集在运行时的行为准确无误,必须执行若干步骤;Guidelines for Creating Side-by-side Assemblies中对这些步骤进行了描述。正确编写程序集后,可将此程序集作为共享程序集或私有程序集与依赖于它的应用程序一起进行部署。将并行程序集作为共享程序集安装时,可以按照Installing Win32 Assemblies for Side-by-Side Sharing on Windows XP中介绍的指南进行操作,也可以使用merge modules。将并行程序集作为私有程序集安装时,在安装过程中,仅需将相应的 DLL、资源和程序集清单复制到目标计算机上的应用程序本地文件夹中,这样可确保加载程序在运行时可以找到此程序集(请参见Assembly Searching Sequence)。另一种方法是使用Windows Installer,并按照Installing Win32 Assemblies for the Private Use of an Application on Windows XP中介绍的指南进行操作。 相关章节部署 Windows 客户端应用程序 请参见概念部署示例生成 C/C++ 独立应用程序 其他资源生成 C/C++ 独立应用程序和并行程序集
manifest文件
Windows XP通过XML文件来实现这一功能,这些XML文件保存了有关应用程序配置的元数据,这里所说的XML文件,就是Manifest清单文件。 一、Manifest的分类 二、Windows对于Manifest的处理 三、VS2005种的Manifest配置 开心
分类:
windows编程
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |