Pregunta

Tengo un par de soluciones que representan un marco de código que he creado en el trabajo. Una solución llamada 'Marco' y otra llamada 'Extensiones'.

La razón por la que los dividí es que la solución 'Extensiones' contiene proyectos que consisten en métodos de extensión, y los proyectos están organizados para que los ensamblajes resultantes reflejen los ensamblados .NET.

Creé un proyecto de módulo de fusión para 'Extensiones' y un instalador que lo usa. Todo está bien y excelente, pero ahora quiero crear un instalador para 'Framework' que también use ese mismo módulo de combinación. En consecuencia, me gustaría modificar el instalador 'Extensiones' para copiar el archivo del módulo de fusión 'Extensiones' a C : \ Archivos de programa \ Archivos comunes \ Módulos de fusión para que el instalador 'Framework' tenga una ruta conocida por la cual hacer referencia al módulo de fusión para 'Extensiones', en lugar de hacer referencia a cualquier ruta oscura en la que viva mi solución VS (la razón es que el Framework a veces se construirá en diferentes máquinas en las que las rutas a los proyectos VS pueden variar).

La documentación de MSDN aborda esto brevemente y simplemente dice que los módulos de combinación no se pueden instalar en el sistema de archivos, sino que solo se pueden "consumir".

Error.

¿Alguien sabe una manera de evitar esto? Acciones personalizadas? ¿Cómo instala el instalador de Visual Studio sus módulos de fusión?

¿Fue útil?

Solución 2

La respuesta breve es: no hay forma de hacerlo, salvo escribir su propio marco de instalación.

Otros consejos

Cuando crea el instalador MergeModule como parte del editor del sistema de archivos, hay una carpeta llamada " Carpeta retardable de módulo " (este es el nombre predeterminado y se puede cambiar, también se pueden agregar otros).

Una vez que se haya creado .msm, si va al proyecto de configuración principal y le agrega el módulo de combinación, puede seleccionar .msm en el explorador de soluciones y, al mirar la ventana de propiedades, debería haber una entrada llamada " MergeModuleProperties ". ; expande esto y deberías ver todas las carpetas de recargables enumeradas y luego puedes señalarlas al lugar correcto.

Tarde a la fiesta, pero

Hice esto una vez renombrando el módulo de fusión (cambió la extensión del archivo), instalándolo en el sistema de archivos como un archivo normal y luego renombrando el archivo instalado.

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