2013-10-16 3 views
3

두 개의 dll (sqlite)을 가지고 있는데, 하나의 dll은 64 비트와 다른 32 비트 dll입니다. 프로세서 아키텍처를 기반으로 동적으로 참조를 추가 할 수 있습니까? P/Invoke가 마지막 옵션입니다. 어떤 도움을 주시면 감사하겠습니다 !!.NET에서 동적으로 참조 추가하기

샘플 코드 :

string pathToDll = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\x64\\System.Data.SQLite.dll"; 
Assembly assembly = Assembly.LoadFrom(pathToDll); 
AppDomain.CurrentDomain.Load(assembly.GetName()); 
+2

[Visual Studio에서 구축시 조건부 32/64 비트 기준을 사용]의 중복 가능성 (http://stackoverflow.com/questions/3832552/conditionally 실행 아키텍처에 따라 변화하는 IntPtr.Size을 확인 -use-32-64-bit-reference-building-in-visual-studio) – CodeCaster

+0

아마 당신에게 도움이 될 것입니다. http://stackoverflow.com/questions/3832552/conditionally-use-32-64-bit-reference-when-building-in-visual-studio/3833444#3833444 – progpow

+0

모든 아키텍처로 컴파일하고 실행하려는 경우가 있습니다. 32/64 모두. 물론 이것을 좋은 설치 프로그램으로 해결할 수는 있지만 중복이 아닐 수도 있습니다. – wiero

답변

6

예, 당신은 당신이 Is64BitOperatingSystem 환경 속성을 사용할 수 있습니다 .net4에서 파일

Assembly.LoadFrom("MyAssembly.dll"); 

에서 어셈블리를로드 할 수 있습니다. 그렇지

Cannot encrypt/decrypt SQLite database in .NET4

+0

동적으로 참조를 추가 할 것이므로 어떻게 dll 메소드를 사용할 것인가? –

+0

다른 응답에 대한 링크를 추가했습니다. – wiero

+0

assembly.loadfrom 메서드에 대해 읽었습니다. 실제 거래처럼 보입니다. 내일 해결책을 확인해 드리겠습니다. –