Question

J'ai un service Windows compilé en tant que AnyCPU. J'essaie de le distribuer dans notre installateur. Cependant ... Je ne suis pas certain de la différence entre les versions 32 bits et 64 bits de InstallUtil. Est-ce que quelqu'un sait ce qu'il y en a (le cas échéant)?

Sur mon ordinateur 64 bits, je peux exécuter le $ (WinDir) \ Microsoft.NET \ Framework64 \ v2.0.50727 ou le $ (WinDir) \ Microsoft.NET \ Framework \ v2.0.50727.

Dans les deux cas, l'indicateur * 32 n'est pas appliqué au processus de service résultant dans le gestionnaire de tâches.

Seul InstallUtil 32 bits fonctionne sur des machines 32 bits (évidemment).

Faut-il utiliser la version \ Framework64 \ de InstallUtil? Que fait-il différemment?

Était-ce utile?

La solution

Selon this , vous êtes censé utiliser le 64 bits version pour installer les assemblys 64 bits et MSIL, mais il ne dit pas pourquoi.

  

À partir de .NET Framework version 2.0, la version 32 bits de   le common language runtime (CLR) est livré uniquement avec la version 32 bits   de l'outil d'installation, mais la version 64 bits du CLR est livrée avec   versions 32 bits et 64 bits de l'outil d'installation. Lorsque vous utilisez le   CLR 64 bits, utilisez l'outil d'installation 32 bits pour installer le logiciel 32 bits   assemblages, et l'outil d'installation 64 bits pour installer 64 bits et   Assemblys de langage intermédiaire Microsoft (MSIL). Les deux versions de   l'outil d'installation se comporte de la même manière.

Je crois que ici explique pourquoi. Si vous regardez au bas de l'article, cela explique certaines différences entre les deux et le moment d'utiliser intallutil 32 bits.

  

Installutil.exe est conçu pour une plate-forme spécifique. Par conséquent, il   commencer en tant que processus 32 ou 64 bits et la ruche de registre associée sera   mis à jour. Notez que si vous avez un composant logiciel enfichable construit avec la plate-forme   changez, vous ne pourrez l’inscrire que dans l’une des ruches   (32 bits ou 64 bits).

Autres conseils

Je suis tombé dessus aussi. Le problème était que mon projet VS2008 était défini sur Platform Target: Any CPU. Peu importe le fichier InstallUtil.exe (32 ou 64) que j'ai exécuté sur le système d'exploitation 64 bits, l'installation était en 64 bits.

J'ai modifié le paramètre de projet Target en x86, puis exécuté le fichier installutil.exe 32 bits et tout fonctionne correctement. Il affiche maintenant le drapeau * 32 dans le Gestionnaire des tâches.

Si vous installez un assembly 64 bits uniquement, InstallUtil 32 bits ne pourra pas le charger. Vous devrez utiliser la version 64 bits.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top