Pregunta

Estoy intentando acceder al valor de la propiedad TargetPlatform (que se puede establecer en un proyecto de implementación) de la condición dentro de una "condición de inicio".

Básicamente estoy tratando de decirle a la aplicación de no instalarse como una aplicación de 32 bits si existe una versión de 64 bits de Office está instalado en ese equipo. Por lo tanto tengo que conseguir de alguna manera valor de bits de la aplicación y ponerla en una condición de inicio.

Me puede obtener el valor de bits de Office desde el registro, pero no sé cómo acceder a la TargetPlatform desde el instalador.

Gracias!

¿Fue útil?

Solución

Aquí hay dos enlaces:

Desde el enlace anterior se puede deducir que no puede dirigirse tanto a las plataformas de un instalador MSI. Usted tendrá que tener dos instaladores. Dependiendo de cómo el programa de instalación se construye, x86 o x64, dependerá de la forma en que los interpreta instalador algunas constantes que indican dónde isntall los archivos - Archivos de programa o Archivos de programa (x86) .

No se puede cambiar el TargetPlatform del instalador en tiempo de ejecución.

Lo que puede hacer lo mejor es tener dos instaladores empaquetados en un tercero y se basa en la versión de Office instalada que usted dice que puede obtener funcionar tanto x 86 sub-instalador o sub-instalador de 64 bits, que realmente instalar los archivos de la aplicación .

Si MSI instalador no es el requisito más exterior que iría para NSIS . Si no es así, al menos, a empaquetar el instalador MSI en un uno NSIS. Es muy fácil. NSIS es mucho más frío que MSI, hablando de la experiencia.

Otros consejos

He leído esta pregunta varias veces y no estoy 100% seguro de que entiendo lo que está tratando de hacer. ¿Tiene una aplicación de 32 bits y sólo desea instalar si tienen 32 bits de Office (2010 supongo) instalado? ¿Usted también tiene una versión de 64 bits que desea instalar si se ha instalado la oficina de 64 bits?

No estoy seguro de por qué es necesario preocuparse por la propiedad TargetPlatform porque si sabe que está instalado Office de 64 bits que debe ser, por definición, un sistema operativo de 64 bits. Si se ha instalado de 32 bits de Office que podría ser un sistema operativo de 64 bits, pero es lo que realmente importa? Dijiste que se preocupaba por el valor de bits de Office no de Windows.

Yo pensaría, por lo que he leído, que si usted tiene una AppSearch que arrastra el valor de bits en una propiedad que usted podría utilizar un LaunchCondition que los usos que la propiedad junto con "o instalado" (para manejar poder desinstalar la aplicación si Office se desinstala primero) y estar muy bien.

Agregar una acción personalizada antes de la instalación comienza a realizar la comprobación. Utilizar una clase instalador para llevar a cabo la acción personalizada . Se podría utilizar el evento OnBeforeInstall para leer la clave de registro y comprobar el valor de bits según corresponda. Lanzar una excepción hará que la instalación de abortar, pero puede haber una forma más limpia de hacer esto.

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