.net InstallUtil Dienstprogramm - 32 Bit vs 64 Bit
-
22-07-2019 - |
Frage
Ich habe einen Windows-Dienst als AnyCPU zusammengestellt bekam. Ich versuche, es in unseren Installer anzu verteilen. Aber ... Ich bin unklar auf der Differenz zwischen den 32- und 64-Bit-Versionen von InstallUtil. Weiß jemand, was (wenn überhaupt) gibt es?
Auf meiner 64-Bit-Maschine, kann ich entweder das $ (WinDir) läuft \ Microsoft.NET \ Framework64 \ v2.0.50727 oder das $ (WinDir) \ Microsoft.NET \ Framework \ v2.0.50727.
In beiden Fällen wird der resultierende Service-Prozess im Task-Manager nicht hat * 32-Flag auf sie angewandt wird.
Nur die 32-Bit-InstallUtil arbeiten auf 32-Bit-Maschinen (natürlich).
Gibt es eine Notwendigkeit, die \ Framework64 \ Version von InstallUtil zu benutzen? Was macht es anders machen?
Lösung
Nach dieser , sollen Sie die 64-Bit verwenden Version 64-Bit und MSIL Baugruppen zu installieren, aber nicht sagen, warum.
Ab .NET Framework, Version 2.0, die 32-Bit-Version von die Common Language Runtime (CLR) Schiffe nur mit der 32-Bit-Version des Installer-Tool, aber die 64-Bit-Version der CLR Schiffe mit sowohl 32-Bit- als auch 64-Bit-Versionen des Installationswerkzeuges. Bei der Verwendung des 64-Bit-CLR, verwenden, um das 32-Bit-Installationswerkzeug 32-Bit zu installieren Baugruppen, und das 64-Bit-Installer-Tool 64-Bit zu installieren und Microsoft Intermediate Language (MSIL) Baugruppen. Beide Versionen von das Installer-Tool gleich verhalten.
Ich glaube, hier erklärt, warum. Wenn Sie am unteren Rand der Post sehen, es erklärt einige Unterschiede zwischen den beiden und wenn die 32-Bit intallutil zu verwenden.
Installutil.exe ist für eine bestimmte Plattform gebaut, daher wird es Start als 32- oder 64-Bit-Prozess und die damit verbundene Registrierungsstruktur wird Aktualisiert. Beachten Sie, dass, wenn Sie ein Snap-In mit der Plattform gebaut haben Schalter, werden Sie nur in der Lage sein, es in einem der Nesselsucht registrieren (32-Bit oder 64-Bit).
Andere Tipps
Ich lief auch über diese. Das Problem war mein VS2008 Projekt Platform Ziel gesetzt wurde: Jede CPU. Egal, welche InstallUtil.exe (32 oder 64) lief ich auf den 64-Bit-OS wurde sie als 64-Bit-Installation.
änderte ich mein Projekt Target x86 Einstellung und dann lief die 32-Bit-installutil.exe und alles funktioniert. Es zeigt nun den * 32-Flag im Task-Manager.
Wenn Sie einen 64-Bit nur einbaut, die 32-Bit-InstallUtil nicht in der Lage sein, es zu laden. Sie werden die 64-Bit-Version verwenden müssen.