Pregunta

Estoy usando un VS de Instalación de 2008 y proyecto de Implementación para implementar un mixto administrado / aplicación no administrada.He tenido problemas para registrarse en modo mixto del archivo DLL con la incorporada en el registro de la propiedad ("vsdraCOM" enumerados valor del "Registro" de la propiedad.) Como solución, he añadido una .NET instalación personalizada de la asamblea (con una clase que deriva de Sistema.De configuración.Instalar.Installer). Estoy seguro de que esa clase está en ejecución y un número de operaciones de instalar y desinstalar correctamente a través de código en la asamblea, incluyendo la ejecución de la Dll(Onu)RegisterServer punto de entrada de un número de asambleas.

Sin embargo, un archivo DLL no está correctamente el registro.Es el único archivo DLL que depende de la 3º parte redistribuible de asambleas que serán instalados en la GAC.Yo tengo esas asambleas instalado para el GAC gracias a la compatibilidad integrada para que en el VS 2008 de configuración e implementación de proyectos, y sé que está trabajando.He confirmado que lo que está sucediendo es que la costumbre de acción se ejecuta antes de que el instalador se ejecuta el GAC de la instalación.

¡Uf.Así que mi pregunta es, hay alguna forma de forzar el instalador para ejecutar el GAC de la instalación antes de ejecutar la acción personalizada?Es allí una manera de utilizar la "Condición" de la propiedad de la acción personalizada para hacer esto?Si no, ¿cuál es mi mejor alternativa?La captura de las entradas en el registro de la DLL y la adición de ellos a la configuración del registro para el instalador (no me gusta esto porque alguien puede añadir nuevos servidores COM a la clase en el futuro)?El uso de .NET de código para instalar el ensamblado en la GAC manualmente (no sé cómo hacer eso todavía)?

Gracias,

Dave

¿Fue útil?

Solución

La instalación de proyectos que se pueden crear en Visual Studio son muy limitadas.Sólo se permite acciones personalizadas para ser programado en 4 puntos.Sin embargo, MSI permite acciones personalizadas para ser programados en cualquier momento del proceso, con algunas restricciones sobre lo que pueden hacer.

Mi primera solución es dejar de utilizar Visual Studio 2008 como la configuración de la herramienta de desarrollo.El Visual Studio team ha tratado de resumen de distancia toda la complejidad de la creación de una instalación.Sin embargo, en el proceso también han quitado toda la flexibilidad de MSI.Wix, InstallShield, o Sabios son mucho mejores productos para nada simple instala.Empecé a usar Visual Studio para nuestro instala y terminó siendo demasiado trabajo.Siempre hay uno más solución a ser implementada y sus efectos secundarios para ser tratados.

Si usted no puede cambiar la tecnología, entonces usted tendrá que aprender cómo modificar manualmente la resultante de archivo MSI.En su caso, usted tendrá que modificar la tabla InstallExecuteSequence, http://msdn.microsoft.com/en-us/library/aa369500(VS.85).aspx.Usted puede hacer esto de forma manual a través de la Orca, http://msdn.microsoft.com/en-us/library/aa370557(VS.85).aspx o a través de la API de MSI http://msdn.microsoft.com/en-us/library/aa372860(VS.85).aspx.Asegúrese de descargar Orca y ejecutar los scripts de validación en contra de su instalación.Las secuencias de comandos de señalar los numerosos problemas que la fijación de le ahorrará innumerables horas de la hora de implementar el cliente de las máquinas.

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