Pregunta

Tengo un servicio de Windows compilado como AnyCPU. Estoy tratando de ponerlo en nuestro instalador para distribuirlo. Sin embargo ... No tengo clara la diferencia entre las versiones de 32 bits y 64 bits de InstallUtil. ¿Alguien sabe qué (si alguno) hay?

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 de servicio resultante en el Administrador de tareas no tiene el indicador * 32 aplicado.

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

¿Es necesario usar la versión \ Framework64 \ de InstallUtil? ¿Qué hace diferente?

¿Fue útil?

Solución

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

  

A partir de .NET Framework versión 2.0, la versión de 32 bits de   Common Language Runtime (CLR) se entrega solo con la versión de 32 bits   de la herramienta Installer, pero la versión de 64 bits del CLR se entrega con   versiones de 32 bits y 64 bits de la herramienta de instalación. Cuando use el   CLR de 64 bits, use la herramienta de instalación de 32 bits para instalar 32 bits   ensamblajes y la herramienta de instalación de 64 bits para instalar 64 bits y   Ensambles de lenguaje intermedio de Microsoft (MSIL). Ambas versiones de   la herramienta del instalador se comporta igual.

Creo que aquí 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 tanto   comenzará como un proceso de 32 o 64 bits y la sección de registro relacionada será   actualizado. Tenga en cuenta que si tiene un complemento integrado con la plataforma   cambiar, solo podrá registrarlo en una de las colmenas   (32 bits o 64 bits).

Otros consejos

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

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

Si está instalando un conjunto de solo 64 bits, InstallUtil de 32 bits no podrá cargarlo. Deberá usar la versión de 64 bits.

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