2012-05-23 15 views
1

일부 맞춤 32 비트 DLL을 사용하여 USB 장치와 통신하는 C#/WPF 앱을 개발 중입니다. 그것은 x86 응용 프로그램으로 개발되었고 WIX와 함께 설치되었습니다. 64 비트 컴퓨터에 패키지를 설치하면 예상대로 프로그램 파일이 x86에 설치됩니다.SysWOW64의 dll이 응용 프로그램에서 찾을 수 없습니다.

dll은 WIX를 사용하여 SystemFolder에 설치됩니다. 32 비트 컴퓨터에서 이것은 C : \ Windows \ System32를 의미합니다. 64 비트에서, 그들은 결국 C : \ Windows \ SysWOW64에 있습니다. 괜찮아요,하지만 내 애플 리케이션을 실행할 때 DLL을 찾을 수 없습니다 ([DllImport ...]를 통해 사용).

그렇다면 System32 또는 SysWOW64에 상관없이 내 앱이 DLL을 찾을 수있는 올바른 방법은 무엇입니까?

덕분에 톰

+0

이 DLL은 드라이버처럼 작동하는 것 같고 64 비트 시스템은 64 비트 드라이버 만 사용합니다. 따라서 이러한 DLL은 64 비트 시스템에서 작동하지 않을 수 있습니다. –

답변

1

그것은 기본 C# 응용 프로그램 인 경우, 자동으로 (32 비트 윈도우에서 32 비트 C3 기본값) 64 비트 윈도우에서 64 비트 응용 프로그램이 될 것입니다. 개발 응용 프로그램의 프로젝트 속성으로 이동하여 아키텍처를 명시 적으로 설정합니다 (필자는 Studio를 지금 당장 설치하지 않은 것 같습니다). 64 비트 응용 프로그램으로 실행중인 경우 32 비트 DLL을 사용할 수 없습니다.

+0

프로젝트가 "any CPU"가 아닌 x86으로 빌드되도록 변경했으며 dll이 System이 아닌 내 자신이 선택한 폴더에 포함되도록 옮겼습니다. 이제는 모두 정상입니다. –