Pregunta

Estoy creando instalador mediante InstallShield 2010 (básica MSI) que está teniendo dos funciones.

Primera función consiste en:

  • aplicación .NET principal compilado como x86,
  • Algunos archivos DLL de terceros x86 nativa que son utilizados por la aplicación principal (versiones de 64 bits no están disponibles).

Segunda característica contiene un solo componente que es una extensión para MS Reporting Services compilados como Cualquier CPU.

Durante la secuencia de interfaz de usuario que estoy usando InstallScript acción personalizada para enumerar todas las instancias de Reporting Services disponibles de ambos árboles de registro x86 y x64.

El usuario tiene que seleccionar en qué instancia que quiere desplegar nuestra extensión.

En base a instancia seleccionada estoy quering registro de localización real de Reporting Services en el sistema de archivos que suele ser algo así como "C: \ Server \ MSSQL.2 \ Servicios de Información Archivos de programa \ Microsoft SQL" y almacenar este valor en una MSI propiedad.

A continuación, mediante el uso de la acción Directorio Conjunto Soy la creación de directorio de destino de un componente (nuestra extensión) al valor de la propiedad que MSI.

Todo está instalando perfectamente bien a menos que tratar de instalarlo para x64 Reporting Services en el que los archivos de extensión caso se instalan en una ubicación incorrecta. Incluso tú MSI propiedad se establece para corregir camino. "C: \ Archivos de programa \ Microsoft ..." (He comprobado registro msi) parece que el sistema está redirigiendo automáticamente en "Archivos de programa (x86)"

¿Hay alguna solución posible superar este problema?

¿Fue útil?

Solución 2

Finalmente resuelto este problema a mí mismo sin crear MSI de 64 bits mediante el uso de acciones personalizadas InstallScript.

En primer lugar la acción personalizada para instalar:

  • copiar manualmente archivos necesarios en el lugar deseado (InstallScript puede acceder a archivos de programa x64)
  • Guardar esta ubicación en el registro como un componente clave de esta función para utilizar durante la desinstalación

Segundo acción personalizada para desinstalar:

  • Leer instalado ubicación del registro (no usar Sistema de búsqueda para obtener este valor debido a que va a ser auto traducido por WindowsInstaller a "Archivos de programa (x86)")
  • Eliminar archivos

Otros consejos

Si necesita instalar en la carpeta Archivos de programa de 64 bits, utilice una de 64 bits MSI.

Puede cambiar el DIRINSTALACIÓN propiedad a ProgramFile64 en lugar de programa, esto le ayudará a instalar en el camino deseado, ya que la aplicación es de 32 bits lo que el camino será C: \ Archivos de programa (x86 ) \ nombre de su empresa \ Su nombre del producto de acuerdo con esto que han hecho sus componentes como de 64 bits compatibles?

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