示例: 使用 DUPS.exe 来解决 DLL 的兼容性问题

文章翻译 文章翻译
文章编号: 247957
展开全部 | 关闭全部

本文内容

概要

DLL 通用问题规划求解工具 (DUPS.exe)示例,其中包含所有记录在 2000 年 1 月的实用工具 Microsoft开发人员网络 (MSDN) 新闻文章"DLL Hell 结束。"请查看,在阅读本文前 MSDN 文章。

DUP 包是一组您可以使用来跟踪和比较多的 DLL 版本的实用程序基于 Windows 的计算机。最大数量受您的 SQL Server 或Microsoft Access 安装。在列举这些 Dll 的 Dlister 客户端系统在运行 Windows 95 或 Windows 98、 Windows NT 4.0 和 Windows 2000 上。"查看实用程序在 Windows NT 4.0 和 Windows 2000 上开发和需要 Microsoft Access 或 Microsoft SQL Server。它被经Microsoft Access 97 和更高版本和 SQL Server 6.5 和更高版本。

更多信息

"下列文件已可从 Microsoft 下载下载中心:

DUPS.exe
发布日期:2000 年 1 月-14 日

有关如何下载的其他信息Microsoft 支持的文件,请单击下面的文章编号,以查看文章Microsoft 知识库中的文章:
119591 如何从在线服务获得 Microsoft 支持文件
Microsoft 扫描此文件中的病毒。Microsoft 使用最大最新的病毒检测软件,在日期都不可用的文件已过帐。该文件存储在安全增强型服务器上,为防止对文件进行任何未经授权的更改。 这篇文章和其附带的代码将更新定期。所有注释欢迎,并会在将来被视为更新。(在右侧框架中使用提交 hotlink注释。)
Microsoft 提供的编程示例仅用于说明,没有任何明示或暗示的担保,包括但不是限于) 对适销性和/或针对特定用途的适用性的暗示保证。本文假定您熟悉所演示的编程语言和用于创建和调试过程的工具。Microsoft 的支持人员可以帮助解释某个特定过程的功能,但是他们不会修改这些示例以提供额外的功能或构建过程以满足您的特定需求。
如果您的编程经验有限,您可能需要与 Microsoft 认证合作伙伴或 Microsoft 顾问服务。有关详细信息,请访问下列 Microsoft Web 站点:

Microsoft 认证合作伙伴 — https://partner.microsoft.com/global/30000104

Microsoft 顾问服务- http://support.microsoft.com/gp/advisoryservice

有关可用的支持选项以及如何与 Microsoft 联系的详细信息,请访问下面的 Microsoft Web 站点:http://support.microsoft.com/default.aspx?scid=fh ;EN-US;CNTACTMS 可以在一台计算机上使用或为使用 DUP 包在网络上跟踪每个 DLL 的 DLL 历史的记录。它在 Windows 95 中到上运行Windows 2000 和在其最简单的模式没有任何依赖项。DUP 包三个 c + + 实用程序和多个 Visual Basic 查看器组成。

如果您只是想要比较这些 Dll 的应用程序正在使用两台计算机上(计算机 A 和计算机 B),运行 Dlister.exe 程序。默认情况下,Dlister在名为 Comp_DLL.txt,其中复合是 C:\ 目录中创建一个文件运行 Dlister 的计算机的名称。您还可以指定该 Dlister写入到数据库中,也可以在其中指定另一个目录文件应创建。有两种方法重写 Dlisters 属性的默认值。Dlister 和 Visual Basic 观众获得该注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\KB Samples\r1dllHell
以及下面的值:
ConnectionString, fileTableDir
您可以使用 Visual Basic 小程序DllHell\C_clients\ATL4VB\VbregSetup 若要设置这些值,也可以简单地运行Dlister,它将创建默认值。例如,将 ConnectString为:
Provider=SQLOLEDB.1;Initial Catalog=dllHell;Data Source=dsc3_ts;
					
Dlister 值写入 SQL Server 的原因dllHell 数据库时:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\dllHell.mdb
					
使用本地 Microsoft Access 数据库中。

重写默认值的第二个方法是通过在中设置属性在 Dlister.exe 目录中的文件 DllHell.ini。这些文件会被解压缩到DllHell\C_clients\Dlister\Release\ 目录中。

名为的文件一个连接字符串,您可以使用此示例中包含 xdllHell.ini修改。(重命名此 dllHell.ini 如果您想要使用它。)

如果计算机A 和计算机 B 都具有 ActiveX 数据对象 (ADO) 安装的最简单的形式若要填充 dllHell 数据库的方法是设置为连接字符串SQL Server 或 Jet 数据库。或者,您可以运行在文本文件中的 Dlister模式,然后使用 c + + 实用程序若要读取输出的 DllHell\C_clients\Dlister\readtxttbl\Release\DlgDtxt2DB.exeDllHell 数据库到文本文件。也是 ReadTxtTbl MFC 应用程序可用于读取数据的客户端电子邮件发送您的文本中。您必须注册COM 服务器DUPS\C_clients\ATL4VB\r1RegMon\ReleaseMinDependency\r1RegMon.dll 和DUPS\C_clients\ATL4VB\readDlls\R1readTxtMod\ReleaseMinDependency\R1readTxtMod.dll若要使用 Visual Basic 的查看器。

您可以启用通过 CRC 校验和设置注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\KBSamples\r1dllHell ComputeCRC 为 0x1,在运行 Windows 2000 的系统上。您一次定位到以下项,您可以将其添加到您的收藏夹。Windows NT 4 用户必须手动导航到此项。

创建 DllHell 数据库

SQL Server 7.0 建议,但 Microsoft Access 2000 中还工作正常。要创建 DLLhell 数据库,您可以使用 SQL Server 企业管理器若要创建一个空的数据库名为 DLLhell。从 SQL Server 查询分析器窗口中,从数据库下拉列表框选择 DLLhell。运行在此窗口中的 DllHell\SQL\dllHellSchema.sql 脚本创建所有Dllhell 所需的表。

或者,您可以运行以下SQL Server 查询分析器中的命令:
EXEC sp_attach_single_file_db 'DLLhell', 'DllHell\SQL\dllHell_Data.MDF'
				
该代码创建数据库和所有表。

比较两个系统上的 Dll

要比较这两个系统使用的所有 Dll Visual cmpWithList在 Dllhell\VBviewers\VBcmpList2 目录中的基本工具。

若要限制DLL 比较 (通常为只有那些目标应用程序加载的 Dll)您还必须具有一个包含您要比较的 Dll 的文本 (.txt) 文件。您可以创建此列表依赖于或几种工具 (如 ListDLLs和进程资源管理器中) 从以下 Web 站点:
http://technet.microsoft.com/en-us/sysinternals/default.aspx

使用 cmpWithList

CmpWithList 启动时它显示一中的计算机列表在计算机列表框中的 DLLhell 数据库。默认情况下,在第一次两台计算机在列表中选择以进行比较。若要更改目标计算机,请选择它在列表框,然后选择更改按钮。Comp1 和 Comp2 编辑框中显示哪些计算机您将比较。

使用目录导航控件以选择文本文件将包含您要对两个比较的所有 Dll 的名称系统。在该文本文件的双单击选择它。

如果不这样做要在某些目录中进行比较的 Dll (通常您不关心的 Dll在 winnt\system32\dllcache 和 WINNT\$ NtServicePackUninstall$) 双击网格中的行。将提示您将该目录添加到 _skipDir表。_SkipDir 中的 Dll 不会考虑以进行比较。

安装自动网络 DLL 审核

设置在 Windows 2000 系统上的日程安排:

开始用 dllHell\rcomp.cmd 命令文件。更改以反映您的系统的以下环境变量:
  1. Dpath: 在客户端 Dlister 中创建目录在客户端上的 dll 的文本文件列表。默认值是C:\temp\DLLhell\
  2. COMP: 客户端计算机的名称。
  3. ChangeFileLocation: 完整网络路径位置 DLL差异文件应该复制。这是该目录的 HellsMonitor服务监视。
  4. ServerLst: 网络路径位置的 C_clients 目录DLLhell 的包的位置。
在任务栏上,单击开始按钮、 指向程序、 指向附件指向系统工具,然后单击任务计划

激活添加计划任务小程序。浏览到包含 rcomp.cmd 的本地目录文件并选中它。选择的选项,向导将显示后,rcomp.cmd 文件被添加到已排定作业。第一次设置计划的作业,选择开始时间 2-5 分钟在将来使您可以测试您的设置。很方便地取消注释暂停命令,以便您可以看到发生的任何错误。

注册文件监视服务

从 Dllhell\C_clients\HellsMonitor\ReleaseUMinDependency运行此命令,注册该服务的目录:
HellsMonitor /Service
				
最重要的部分是监视客户机。这是一个 GUI,允许您添加或删除要监视的目录。它还允许您为指定的应用程序来运行 (使用方便的浏览按钮)。对于重复监视系统,应用程序是Dllhell\C_clients\Dlister\ReadTxtTblCmdLine\Debug\ReadTxtTblCmdLine.exe。

若要添加要监视的目录,请单击添加。此操作将打开,您可以浏览到一个目录浏览对话框您想要监视的目录。若要删除一个目录中选择您想要删除,然后单击删除目录。在键入要指定要运行的应用程序或浏览到它。如果未指定的路径必须位于系统路径在某处。接下来,单击设置来设置显示器,以运行该应用程序,所作更改时检测到。

注意: 当您更改该应用程序时,才会启用设置按钮若要从运行该属性当前设置。启用了删除按钮时,才您必须选择要删除的目录。

参考

有关详细信息,请参阅下面的 Microsoft Web 站点:
"DLL Hell 端"

属性

文章编号: 247957 - 最后修改: 2013年6月28日 - 修订: 5.0
关键字:?
kbdownload kbfile kbhowto kbmt KB247957 KbMtzh
机器翻译
重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。
点击这里察看该文章的英文版: 247957
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com