重新发布 MFC 库
更新:2007 年 11 月
如果将应用程序动态链接到 MFC 库,您将至少需要使用相应的清单文件为 MFC 和 CRT 程序集重新发布 Mfc90.dll 和 Msvcr90.dll。有关 Visual C++ 程序集以及作为其组成部分的 DLL 的更多信息,请参见Visual C++ Libraries as Shared Side-by-Side Assemblies。所有 MFC DLL 都使用 C 运行时库 (CRT) 的共享版本;因此 Msvcr90.dll 是必需的。
如果静态链接到 MFC DLL(即,如果在“属性页”对话框中的“常规”选项卡上指定“在静态库中使用 MFC”),则不需要与 MFC 应用程序一起重新发布 Mfc90.dll。即使这可能对测试以及应用程序的内部部署都有效,也不建议重新发布 MFC。有关用于部署 Visual C++ 库的建议解决方案的更多信息,请参见选择部署方法。
如果应用程序使用实现 WebBrowser 控件的 MFC 类(例如,CHtmlView Class 或 CHtmlEditView Class),则必须在目标计算机上安装 Microsoft Internet Explorer 4.0 或更高版本。安装 Internet Explorer 的最新版本也确保了目标计算机有最新的公共控件文件。有关如何安装最小限度的 Internet Explorer 组件的信息可以在知识库文章 Q185375“HOWTO: Create a Single EXE Install of Internet Explorer”(如何:创建 Internet Explorer 的单个 EXE 安装)中找到。
如果应用程序使用 MFC 数据库类,如 CRecordset Class 和 CRecordView Class,则必须重新发布应用程序所使用的 ODBC 和任何 ODBC 驱动程序。有关更多信息,请参见 重新发布数据库支持文件。
如果 MFC 应用程序使用 Windows 窗体控件,则必须随应用程序一起重新发布 mfcmifc90.dll。此 DLL 是一个强名称签名的 .NET 程序集,可以通过应用程序本地文件夹中的应用程序或通过使用全局程序集缓存工具 (Gacutil.exe) 部署到全局程序集缓存 (GAC) 进行重新发布。
如果重新发布 MFC DLL,则要确保重新发布零售版本,而不是调试版本。DLL 的调试版本是不可重新发布的。MFC DLL 的调试版本在它们的文件名结尾有“d”,如 Mfc90d.dll。
如果以任何方式修改 MFC 源代码并重新生成 MFC DLL,则必须重新命名修改的 MFC DLL,这样它将不会与 Visual Studio 中的 MFC DLL 冲突。不建议重新生成和重命名 MFC DLL。有关更多信息,请参见 MFC 技术说明 33。
您可以通过两种方法来重新发布 MFC:使用与 Visual Studio 一起安装的合并模块,或者将本地应用程序文件夹的子文件夹中将 MFC 程序集部署为私有程序集。有关重新发布 MFC 的更多信息,请参见 重新发布 Visual C++ 文件。
安装本地化的 MFC 组件
如果您决定通过安装 MFC90 本地化 DLL 来本地化应用程序的 MFC 资源的使用,则必须使用可再发行 MSM 文件。例如,如果希望本地化 x86 计算机上的应用程序,则必须将文件 Microsoft_VC90_MFCLOC_x86.msm 和 policy_9_0_Microsoft_VC90_MFCLOC_x86.msm 合并到 x86 计算机上的安装包。
除了标准目录、清单和策略文件外,可再发行 MSM 文件还包含一组用于所有本地化的 DLL(共 9 个)。安装过程会将这些 DLL 复制到目标计算机的 winsxs 文件夹。
有关本地化 MFC 应用程序的更多信息,请在 https://support.microsoft.com/support 网站中搜索 MFC 技术说明 57 和知识库文章 Q208983“How to: Using MFC LOC DLLs”(如何:使用 MFC LOC DLL)。
您可以通过将应用程序本地文件夹中的 MFC 程序集部署为私有程序集来重新发布 MFC 本地化 DLL。有关将 Visual C++ 库重新发布为私有程序集的更多信息,请参见 重新发布 Visual C++ 文件。