2009-10-30 17 views
13

Mam usługę Windows skompilowaną jako AnyCPU. Próbuję wprowadzić go do naszego instalatora w celu dystrybucji. Jednak ... jestem niejasny na temat różnicy między 32- i 64-bitowymi wersjami InstallUtil. Czy ktoś wie, co (jeśli w ogóle istnieje)?.net InstallUtil - 32 bit vs 64 bit

Na komputerze 64-bitowym można uruchomić program $ (WinDir) \ Microsoft.NET \ Framework64 \ v2.0.50727 lub $ (WinDir) \ Microsoft.NET \ Framework \ v2.0.50727.

W obu przypadkach wynikowy proces serwisowy w Menedżerze zadań nie ma zastosowanej do niego flagi * 32.

Tylko 32-bitowa instalacja InstallUtil działa na 32-bitowych komputerach (oczywiście).

Czy istnieje potrzeba korzystania z \ Framework64 \ Version InstallUtil? Co robi inaczej?

Odpowiedz

14

Zgodnie z this, należy użyć wersji 64-bitowej do zainstalowania zespołów 64-bitowych i MSIL, ale nie wyjaśnia dlaczego.

Począwszy od wersji .NET Framework 2.0, wersja 32-bitowa plików wykonywalnych języka wspólnego (CLR) statki tylko z 32-bitową wersją narzędzia instalatora, ale w wersji 64-bitowej CLR jest dostarczany wraz z wersją 32-bitową i 64-bitową narzędzia instalatora. Podczas korzystania z 64-bitowego środowiska CLR w wersji należy użyć 32-bitowego narzędzia instalacyjnego, aby zainstalować 32-bitowe zestawy , a także 64-bitowe narzędzie instalatora, aby zainstalować 64-bitowe i złożone z języków pośrednich (MSIL) wersje językowe Microsoft. Obie wersje narzędzia instalatora zachowują się tak samo.

Wierzę, że here wyjaśnia, dlaczego. Jeśli spojrzysz na dół posta, wyjaśnia on pewne różnice między tymi dwoma i kiedy używać 32-bitowego intallutil.

Installutil.exe jest zbudowany na konkretnej platformy, zatem będzie to uruchomić jako proces 32 lub 64-bitowym i pokrewnych gałęzi rejestru będzie aktualizowana. Zauważ, że jeśli masz przystawkę zbudowaną z przełącznikiem platformy , będziesz mógł zarejestrować ją tylko w jednej z uli (32-bitowa lub 64-bitowa).

+0

Doskonały, ten drugi wyjaśnia przeczucie, które miałem, ale nie byłem w stanie potwierdzić. Dzięki! –

2

Przebiegłem to również. Problem polegał na tym, że mój projekt VS2008 został ustawiony na Platform Platform: Any CPU. Bez względu na to, który InstallUtil.exe (32 lub 64) uruchomiłem na 64-bitowym systemie operacyjnym, był instalowany jako 64-bitowy.

Zmieniłem ustawienie projektu Cel na x86, a następnie uruchomiłem 32-bitowy plik installutil.exe i wszystko działa poprawnie. Teraz pokazuje flagę * 32 w Menedżerze zadań.

1

Jeśli instalujesz zestaw tylko 64-bitowy, 32-bitowa InstallUtil nie będzie w stanie go załadować. Musisz użyć wersji 64-bitowej.

Powiązane problemy