2009-10-30 13 views
13

Tengo un servicio de Windows compilado como AnyCPU. Estoy tratando de distribuirlo en nuestro instalador. Sin embargo ... No estoy seguro de la diferencia entre las versiones de 32 bits y 64 bits de InstallUtil. ¿Alguien sabe qué (si hay alguno) hay?.net Utilidad InstallUtil - 32 bit vs 64 bit

En mi máquina de 64 bits, puedo ejecutar $ (WinDir) \ Microsoft.NET \ Framework64 \ v2.0.50727 o $ (WinDir) \ Microsoft.NET \ Framework \ v2.0.50727.

En ambos casos, el proceso del servicio resultante en el Administrador de tareas no tiene aplicado el indicador * 32.

Solo la InstallUtil de 32 bits funciona en máquinas de 32 bits (obviamente).

¿Existe la necesidad de utilizar la versión \ Framework64 \ de InstallUtil? ¿Qué hace de manera diferente?

Respuesta

14

De acuerdo con this, se supone que debe utilizar la versión de 64 bits para instalar ensambles de 64 bits y MSIL, pero no dice por qué.

A partir de la versión 2.0 de .NET Framework, la versión de 32 bits de el tiempo de ejecución de lenguaje común (CLR) se envía con sólo la versión de 32 bits de la herramienta de instalación, pero la versión de 64 bits de CLR se envía con versiones de 32 bits y 64 bits de la herramienta Installer. Al utilizar el CLR de 64 bits, utilice la herramienta Installer de 32 bits para instalar ensamblajes de 32 bits, y la herramienta Installer de 64 bits para instalar ensambles de lenguaje intermedio Microsoft (MSIL) de 64 bits y . Ambas versiones de la herramienta Installer se comportan igual.

Creo que here explica por qué. Si miras al final de la publicación, explica algunas diferencias entre los dos y cuándo usar el intallutil de 32 bits.

Installutil.exe está construido para una plataforma específica, por lo que se empezar como un proceso de 32 o de 64 bits y la sección del Registro relacionados se actualizan . Tenga en cuenta que si tiene un complemento creado con el conmutador de plataforma , solo podrá registrarlo en una de las colmenas (32 bits o 64 bits).

+0

Perfecto, ese segundo explica una corazonada que tuve pero no pude confirmar. ¡Gracias! –

2

Me encontré con esto también. El problema era que mi proyecto VS2008 estaba configurado en Target de plataforma: cualquier CPU. No importa qué InstallUtil.exe (32 o 64) ejecuté en el sistema operativo de 64 bits que estaba instalando como de 64 bits.

Cambié la configuración de mi proyecto Destino a x86 y luego ejecuté el archivo installutil.exe de 32 bits y todo funciona bien. Ahora muestra el indicador * 32 en el Administrador de tareas.

1

Si está instalando un ensamblado de solo 64 bits, el InstallUtil de 32 bits no podrá cargarlo. Necesitarás usar la versión de 64 bits.

Cuestiones relacionadas