EJEMPLO: Uso de DUPS.exe para resolver problemas de compatibilidad DLL

IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.

Haga clic aquí para ver el artículo original (en inglés): 247957
Resumen
La herramienta Solver de problema Universal de DLL (DUPS.exe) es un ejemplo que contiene todas las utilidades que se documentan en enero del de 2000 artículo de noticias de Microsoft Developer Network (MSDN) "Fin del infierno de las DLL". Antes de leer este artículo, consulte ese artículo de MSDN.

El paquete de duplicados es un conjunto de utilidades que puede utilizar para realizar un seguimiento y comparar versiones de un archivo DLL en varios equipos basados en Windows. El número máximo se rige por la instalación de SQL Server o Microsoft Access. El cliente de Dlister que enumera los archivos DLL en un sistema se ejecuta en Windows 95 o Windows 98, Windows NT 4.0 y Windows 2000. Las utilidades de visualización se desarrollaron en Windows NT 4.0 y Windows 2000 y requieren Microsoft Access o Microsoft SQL Server. Se ha probado con Microsoft Access 97 y versiones posteriores y SQL Server 6.5 y versiones posteriores.
Más información
El siguiente archivo está disponible para su descarga desde el Centro de descarga de Microsoft:

Fecha de lanzamiento: Jan-14-2000

Para obtener información adicional acerca de cómo descargar archivos de Microsoft Support, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
119591 Cómo obtener archivos de soporte técnico de Microsoft desde los servicios en línea
Microsoft analizó este archivo en busca de virus. Microsoft ha utilizado el software de detección de virus más reciente que estaba disponible en la fecha en que se publicó el archivo. El archivo se almacena en servidores seguros que ayudan a impedir cambios no autorizados en el archivo. En este artículo y su código correspondiente se actualizará periódicamente. Todos los comentarios son bienvenidos y se considerará en futuras actualizaciones. (Utilice el vínculo Enviar rápido en el marco derecho para agregar comentarios.)
Microsoft proporciona ejemplos de programación con fines ilustrativos únicamente, sin garantía expresa o implícita, incluyendo, pero sin limitarse a, las garantías implícitas de comerciabilidad e idoneidad para un fin determinado. En este artículo se supone que está familiarizado con el lenguaje de programación que se demuestra y las herramientas utilizadas para crear y depurar procedimientos. Los profesionales de soporte técnico de Microsoft pueden explicarle la funcionalidad de un determinado procedimiento, pero no modificarán estos ejemplos para ofrecer mayor funcionalidad ni crearán procedimientos que cumplan sus necesidades específicas.
Si tiene poca experiencia en programación, desea ponerse en contacto con un Microsoft Certified Partner o servicios de consultoría de Microsoft. Para obtener más información, visite estos sitios Web de Microsoft:

Microsoft certificada Partners: https://Partner.Microsoft.com/global/30000104

Servicios de asesoramiento de Microsoft- http://support.Microsoft.com/GP/advisoryservice

Para obtener más información acerca de las opciones de soporte que están disponibles y cómo ponerse en contacto con Microsoft, visite el siguiente sitio Web de Microsoft:http://support.Microsoft.com/default.aspx?scid=fh; EN-US; CNTACTMS El paquete de duplicados puede utilizado en un único equipo o a un seguimiento del historial de la DLL de cada DLL en la red. Se ejecuta en Windows 95 a Windows 2000 y en que su modo más simple no tiene dependencias. El paquete de duplicados está formado por las tres utilidades de C++ y varios visores de Visual Basic.

Si desea comparar los archivos DLL que una aplicación está utilizando en dos equipos (el equipo A y el equipo B), ejecute el programa Dlister.exe. De forma predeterminada Dlister crea un archivo en el directorio C:\ con el nombre Comp_DLL.txt, donde la composición es el nombre del equipo que ejecuta Dlister. También puede especificar que Dlister escritura a una base de datos, o puede especificar otro directorio en el que se debe crear el archivo. Hay dos maneras de reemplazar los valores predeterminados de atributo Dlisters. Dlister y los visores de Visual Basic Obtén esta clave del registro:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\KB Samples\r1dllHell
Y los siguientes valores:
ConnectionString, fileTableDir
Puede utilizar el subprograma de Visual Basic DllHell\C_clients\ATL4VB\VbregSetup para establecer estos valores o simplemente puede ejecutar Dlister y crea los valores predeterminados. Por ejemplo, estableciendo el parámetro ConnectString como:
Provider=SQLOLEDB.1;Initial Catalog=dllHell;Data Source=dsc3_ts;					
hace que Dlister escribir valores en la base de datos de SQL Server dllHell, mientras que:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\dllHell.mdb					
utiliza una base de datos local de Microsoft Access.

La segunda manera de reemplazar los valores predeterminados está estableciendo los atributos en el archivo DllHell.ini en el directorio Dlister.exe. Estos archivos no se descomprimen en el directorio DllHell\C_clients\Dlister\Release\.

Se incluye un archivo denominado xdllHell.ini en el ejemplo de una cadena de conexión que se puede modificar. (Rename esta dllHell.ini si desea utilizarla).

Si el equipo A y el equipo B tienen instalado ActiveX Data Objects (ADO), es el método más sencillo para llenar la base de datos dllHell establecer la cadena de conexión a la base de datos Jet o de SQL Server. Como alternativa, puede ejecutar Dlister en el modo de archivo de texto y utilice la utilidad DllHell\C_clients\Dlister\readtxttbl\Release\DlgDtxt2DB.exe de C++ para leer el archivo de texto de salida en la base de datos DllHell. La aplicación MFC ReadTxtTbl también es útil para la lectura del texto que los clientes de datos por correo electrónico. Debe registrar los servidores COM DUPS\C_clients\ATL4VB\r1RegMon\ReleaseMinDependency\r1RegMon.dll y DUPS\C_clients\ATL4VB\readDlls\R1readTxtMod\ReleaseMinDependency\R1readTxtMod.dll para utilizar los visores de Visual Basic.

Puede habilitar las sumas de comprobación CRC estableciendo la clave del registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\KB Samples\r1dllHell ComputeCRC en 0 x 1 en sistemas que ejecuten Windows 2000. Una vez que se desplaza a esta clave, puede agregarlo a sus favoritos. Los usuarios de Windows NT 4 deben navegar manualmente a esta clave.

Creación de la base de datos DllHell

Se recomienda SQL Server 7.0, pero Microsoft Access 2000 también funciona. Para crear la base de datos DLLhell puede utilizar el Administrador corporativo de SQL Server para crear una base de datos vacía llamada DLLhell. En la ventana analizador de consultas de SQL Server, seleccione DLLhell del cuadro de lista desplegable base de datos. Ejecute la secuencia de comandos DllHell\SQL\dllHellSchema.sql en esta ventana y crea todas las tablas necesarias para Dllhell.

Como alternativa, puede ejecutar el comando siguiente en el analizador de consultas de SQL Server:
EXEC sp_attach_single_file_db 'DLLhell', 'DllHell\SQL\dllHell_Data.MDF'				
El código crea la base de datos y todas las tablas.

Comparar los archivos DLL en dos sistemas

Para comparar los archivos DLL en dos sistemas utilizan la utilidad de Visual Basic cmpWithList en el directorio Dllhell\VBviewers\VBcmpList2.

Para limitar las comparaciones DLL (normalmente a sólo esos archivos DLL se carga en una aplicación de destino) también debe tener un archivo de texto (.txt) que contiene los archivos DLL que desea comparar. Puede crear esta lista con Depends o una de diversas herramientas (como ListDLLs y Process Explorer) desde el siguiente sitio Web:

Usando cmpWithList

Cuando se inicia cmpWithList muestra una lista de equipos en la base de datos DLLhell en el cuadro de lista de equipos. De forma predeterminada, se seleccionan los primeros dos equipos en la lista para la comparación. Para cambiar el equipo de destino, selecciónelo en el cuadro de lista y, a continuación, seleccione el botón cambiar . El Comp1 y Comp2 editar mostrar cuadros qué equipos va a comparar.

Utilice el control de exploración de directorios para seleccionar el archivo de texto que contendrá los nombres de todas las DLL que desee comparar en los dos sistemas. Hacer doble clic en el archivo de texto lo selecciona.

Si no desea comparar archivos DLL en algunos directorios (normalmente que no le interesen dll en winnt\system32\dllcache y WINNT\$ por $ntservicepackuninstall$) haga doble clic en la fila de la cuadrícula. Se le pedirá que agregue el directorio a la tabla _skipDir. DLL en el _skipDir no se consideran para la comparación.

Instalación automática de red DLL auditoría

Configuración de la programación en sistemas Windows 2000:

Iniciar con el archivo de comandos dllHell\rcomp.cmd. Cambiar las siguientes variables de entorno para reflejar su sistema:
  1. Dpath: El directorio en el cliente donde Dlister createsthe texto de archivos lista de archivos DLL en el cliente. El valor predeterminado isC:\temp\DLLhell\
  2. COMP: El nombre del equipo cliente.
  3. ChangeFileLocation: La ruta de red completa donde se debe copiar el archivo DLLdifferences. Éste es el directorio que vigilan el HellsMonitorservice.
  4. ServerLst: La ruta de red donde se encuentra el directoryof de C_clients el paquete DLLhell.
En la barra de tareas, haga clic en el botón Inicio , seleccione programas, Accesorios, Herramientas del sistema y, a continuación, haga clic en Tareas programadas.

Activar el subprograma Agregar tarea programada . Busque en el directorio local que contiene el archivo rcomp.cmd y selecciónelo. Después de seleccionar las opciones que presenta el asistente, el archivo rcomp.cmd se agrega a los trabajos programados. La primera vez que configura el trabajo programado, seleccione la hora de inicio 2 a 5 minutos en el futuro para que pueda probar la configuración. A menudo resulta conveniente quitar el comando Pausar los comentarios para que puedan ver los errores que se producen.

Registre el archivo servicio de supervisión

Desde el directorio Dllhell\C_clients\HellsMonitor\ReleaseUMinDependency ejecutar este comando, que registra el servicio:
HellsMonitor /Service				
La parte más importante es el cliente de monitor. Se trata de una GUI que permite agregar o quitar los directorios que debe supervisar. También permite especificar la aplicación que se ejecuta (con un botón Examinar útil). Para el sistema de supervisión de duplicados, la aplicación es Dllhell\C_clients\Dlister\ReadTxtTblCmdLine\Debug\ReadTxtTblCmdLine.exe.

Para agregar un directorio a supervisar, haga clic en Agregar. Esto abre un cuadro de diálogo de Examinar directorio donde puede examinar el directorio desea supervisar. Para quitar un directorio o directorios, seleccione los directorios que desea quitar y, a continuación, haga clic en Quitar. Para especificar que la aplicación se ejecute cualquiera de los tipos en o examinar a él. Si no se especifica una ruta de acceso debe estar en la ruta del sistema en algún lugar. A continuación, haga clic en Configurar para configurar el monitor para que se ejecute la aplicación cuando se detecta un cambio.

Nota: el botón establecer sólo se activa cuando cambia la aplicación se ejecute en lo que actualmente está establecido. El botón Quitar está habilitado sólo cuando tiene directorios seleccionados quitar.
Referencias
Para obtener más información, consulte el siguiente sitio Web de Microsoft:
DUPLICADOS

Advertencia: este artículo se tradujo automáticamente

Propiedades

Id. de artículo: 247957 - Última revisión: 10/12/2015 06:05:00 - Revisión: 7.0

  • kbdownload kbfile kbhowto kbmt KB247957 KbMtes
Comentarios