¿Cómo puedo implementar una utilidad con la dependencia OCX para una máquina de prueba sin registrar el OCX?

StackOverflow https://stackoverflow.com/questions/3048371

  •  27-09-2019
  •  | 
  •  

Pregunta

Tengo una utilidad de prueba que depende de un archivo OCX que se instala / registrado en mi máquina de desarrollo. Nos gustaría ejecutar esta herramienta en una máquina de prueba sin contaminar la máquina con los archivos innecesarios. Nada debe ser instalado, excepto el software de la máquina de destino. Ejecución de la herramienta en una unidad de red o en un directorio independiente copiado a la máquina de prueba sería ideal. Sin embargo, el registro de la OCX en la máquina de prueba está fuera de la cuestión. Colocando el archivo OCX en el mismo directorio que el ejecutable no funciona. No importa lo que todavía me da este error - "La aplicación no se pudo iniciar porque la configuración de la aplicación es incorrecta volver a instalar la aplicación puede solucionar el problema.". ¿Qué más puedo intentar? FYI, estoy usando Visual Studio 2008.

¿Fue útil?

Solución

Si estamos hablando de Windows XP +, a continuación, Microsoft tiene una capacidad denominada Reg-COM libre. Básicamente se crea un archivo de manifiesto para su EXE que pone en su DLL / OCX y que tiene toda la información de registro necesaria para realizar la llamada COM sin tener que registrarse en HKCR.

http://msdn.microsoft.com/en-us/library/ ms973913.aspx

Otros consejos

La capa COM utiliza el registro de Windows para traducir el GUID al componente (DLL, OCX, EXE) que implementa la funcionalidad. Creo que no hay otra forma de evitar esto.

Por suerte (pero no para usted) Microsoft se dio cuenta de que este era un poco demasiado complejo y por lo tanto los componentes .Net no lo hacen necesaria esta necesidad de registro. Sólo poner el .Net DLL además de la aplicación sólo hace que sea 'detectable' por la aplicación.

En su situación, ¿podría usar una máquina virtual para probar su componente? Si es así, usted podría

  • hacer una imagen de máquina virtual (sin el componente registrado, pero con todo lo demás que necesita de Windows)
  • copia de seguridad de la imagen de la máquina virtual
  • a continuación, poner en marcha la máquina virtual con la imagen, se registra el componente y probar la aplicación
  • después de la prueba se puede tirar a la basura la imagen y tener la copia de seguridad de nuevo para comenzar con un ambiente fresco de nuevo

de PSExec puede ayudar aquí. La usamos en una herramienta de prueba en el local de PSExec sistema que utiliza para ejecutar programas remotos en una otra máquina Winodws. Esto permite que el instrumento de prueba y todas las dependencias que se ejecutan en una máquina (contaminado) Desarrollador / test-arnés, pero el código bajo prueba a ejecutar una imagen de VMware absolutamente limpio sucesivamente.

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