문제

Windows 서비스가 anyCPU로 컴파일되어 있습니다. 배포하기 위해 설치 프로그램에 넣으려고 노력하고 있습니다. 그러나 ... 32 비트와 64 비트 버전의 installUtil의 차이에 대해서는 확실하지 않습니다. 누구든지 거기에 무엇이 있는지 아는 사람이 있습니까?

64 비트 머신에서 $ (Windir) microsoft.net framework64 v2.0.50727 또는 $ (Windir) microsoft.net framework v2.0.50727을 실행할 수 있습니다.

두 경우 모두 작업 관리자의 결과 서비스 프로세스에는 *32 플래그가 적용되지 않습니다.

32 비트 installUtil 만 32 비트 머신에서 작동합니다 (분명히).

framework64 installUtil의 버전을 사용해야합니까? 다르게 무엇을합니까?

도움이 되었습니까?

해결책

에 따르면 이것, 64 비트 버전을 사용하여 64 비트 및 MSIL 어셈블리를 설치해야하지만 그 이유는 없습니다.

CLR (Common Language Runtime)의 32 비트 버전 인 .NET Framework 버전 2.0을 시작으로 32 비트 버전의 설치 프로그램 도구 만 제공하지만 64 비트 버전의 CLR은 32 비트를 모두 제공합니다. 설치 프로그램의 64 비트 버전. 64 비트 CLR을 사용할 때는 32 비트 설치 프로그램 도구를 사용하여 32 비트 어셈블리를 설치하고 64 비트 설치 프로그램을 설치하여 64 비트 및 MICROSOFT 중간 언어 (MSIL) 어셈블리를 설치하십시오. 설치 프로그램의 두 버전 모두 동일하게 작동합니다.

나는 믿는다 여기 이유를 설명합니다. 게시물의 맨 아래를 보면 둘과 32 비트 인탈 루틸을 사용하는시기의 차이점을 설명합니다.

installutil.exe는 특정 플랫폼 용으로 제작되었으므로 32 또는 64 비트 프로세스로 시작되며 관련 레지스트리 하이브가 업데이트됩니다. 플랫폼 스위치로 스냅인을 구축 한 경우 Hives 중 하나 (32 비트 또는 64 비트)에만 등록 할 수 있습니다.

다른 팁

나는 이것을 가로 질러 달렸다. 이 문제는 VS2008 프로젝트가 플랫폼 목표 인 CPU로 설정되었습니다. 어떤 installutil.exe (32 또는 64)에 관계없이 64 비트 OS에서 64 비트로 설치하고있었습니다.

프로젝트 설정 대상을 x86로 변경 한 다음 32 비트 installutil.exe를 실행했으며 모든 것이 잘 작동합니다. 이제 작업 관리자에 *32 플래그가 표시됩니다.

64 비트 전용 어셈블리를 설치하는 경우 32 비트 installUtil을로드 할 수 없습니다. 64 비트 버전을 사용해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top