Pregunta

¿Alguien puede decirme cómo convertir una aplicación heredada que es vb6 (ocx y exes de dll COM) para usar Regfree COM.

Intenté abrir los archivos DLL en Visual Studio y creé el archivo de manifiesto, pero algunos de los archivos DLL están dando error.

¿Hay alguna herramienta que me ayude a hacer este proceso?

Probé una herramienta de codeproject que se llama regsvr42, que no está creando el manifiesto por completo.

Utilicé herramientas como PE Explorer donde obtengo toda la información de typelib, pero convertirlas en archivos de manifiesto es demasiado difícil.

Hemos comenzado a migrar eso a .NET, durante algunos meses tenemos que implementarlo, será más fácil si es una implementación basada en xcopy.

¿Fue útil?

Solución

Para crear archivos de manifiesto, puede intentar utilizar Make My Manifest desde http://mmm4vb6.atom5.com/ .

EDITAR El sitio web de MMM está caído. Veo aquí que el autor estaba teniendo problemas con su hosting y ha proporcionado otra ubicación para obtener Make My Manifest - descárguelo aquí .

Si puede controlar la creación de objetos, puede usar DirectCOM desde http://www.thecommon.net /10.html

Tenga en cuenta que si una de las DLL u OCX usadas está creando otros objetos COM dinámicamente con llamadas CreateObject, esa referencia no se almacenará en el archivo de proyecto vbp y no obtendrá el archivo de manifiesto completo. Probablemente tendrá que atrapar creaciones de objetos mientras se ejecuta la aplicación. La aplicación Depends.exe puede perfilar la aplicación en ejecución e informar todos los archivos DLL utilizados. No sé si hay una herramienta que pueda encontrar información adicional relacionada con COM.

Otros consejos

Hay un excelente tutorial sobre qué hacer en este artículo en MSDN: Activación sin registro de componentes COM: un tutorial .

Make My Manifest puede acomodar la unión tardía y la unión temprana. Simplemente tiene que agregar las referencias a las dependencias enlazadas de forma manual, por ubicación de archivo o por ProgId.

Puede mirar http://mmm4vb6.atom5.com/mmm-demo -1248.html para obtener ayuda adicional sobre el uso de la utilidad.

MakeMyManifest es una herramienta automática para crear manifiestos para proyectos VB6, no lo he intentado yo mismo. DirectCOM también tiene seguidores, de nuevo, no lo he probado.

EDITAR El sitio web de MMM está caído. Veo aquí que el autor estaba teniendo problemas con su hosting y ha proporcionado otra ubicación para obtener Make My Manifest - descárguelo aquí .

Hay una técnica semiautomática. Puede crear los manifiestos con Visual Studio 2008 (puede usar una versión gratuita como Visual Basic Express Edition). Luego, realice un par de ediciones a mano para que los manifiestos sean adecuados para su uso desde VB6. Consulte esta sección de este artículo de MSDN para obtener instrucciones paso a paso: ignore el resto del artículo que trata sobre ClickOnce.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top