2012-04-25 4 views
0

저는 항상 x86 (XP)에서 실행되는 .NET 3.5 응용 프로그램을 가지고 있습니다. 이제 x64 (Win7)에서 실행하려면이 프로그램이 필요합니다. 이 응용 프로그램의 빌드는 모든 CPU이므로 x64에서 실행해야합니다. 내 설치 프로젝트> 레지스트리 편집기에서 HKEY_LOCAL_MACHINE \ Software \ Company \ Product \ AppPath에 AppPath라는 레지스트리 키를 만듭니다. 내 설치 프로젝트의에 targetPlatform을 변경하는 경우 64 비트 시스템에서임의의 CPU에 대한 응용 프로그램 배포. HKLM 레지스트리 읽기

내 설치 프로젝트 레지스트리를 할 이유 X64하는 HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ 회사 \ 제품 \ AppPath

내 첫 번째 질문에서이 키를있다 설치 키가 Wow6432Node 하위 시스템에 추가됩니까? 정확하게 x64를 인식한다면 x64 레지스트리에 Wow6432Node 하위 시스템이 아닌 키를 설치해야합니다. 분명히 x64를 대상으로하는 모든 작업을 수행하지 않았습니다. 설치 프로젝트에 x64의 대상 플랫폼이 있어도 32 비트 인 것처럼 프로그램을 설치하게 만들었을 경우 놓친 부분이 있습니까?

clientPbDir = Registry.LocalMachine.OpenSubKey("Software\\Company\\Product").GetValue("AppPath").ToString(); 

가 어떻게 x86 및 x64 모두이 작업을 할 수 있습니다 : 나는 다음과 같이 레지스트리를 읽는 코드가있는 경우

내 두 번째 질문은?

이 문서 종류의 질문에 대답합니다.

Reading the registry and Wow6432Node key

하지만 난 그냥 그것을 피할 수 있다면 x86 및 x64 모두에서 레지스트리를 읽을 수 있도록 86로 내 프로젝트를 컴파일 할 필요가 없습니다 선호하는 것입니다. 나는 x64 성능을 최대한 활용할 수 있기를 원합니다.

답변