이름이 지정되지 않은 어셈블리 대신 강력한 이름의 어셈블리를 사용하는 방법이 있습니까?명명되지 않은 어셈블리 대신 강력한 어셈블리 이름이 붙은
나는 도서관 만드는 오전 (예 : SqliteOrm.dll) 다른 라이브러리를 참조하는 (내 인스턴스의 휴대용 클래스 라이브러리를 문제가 모든 종류의 함께하여) (예 : 시스템
진짜 문제는 이것이다 .Data.dll)은 플랫폼 (iOS, Android, WP, 데스크톱 및 WinRT)에 따라 다릅니다. 이 라이브러리 (SqliteOrm.dll)는 각 플랫폼의 응용 프로그램에서 사용되지만 System.Data.dll을 전환합니다.
그러나 System.Data.dll은 GAC에 강력한 이름으로 존재합니다. 이 라이브러리가 소비되는 예외가 발생합니다
System.IO.FileNotFoundException:
Could not load file or assembly 'System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.
The system cannot find the file specified.
내가가 system.data.dll는 WP에 존재하지만, M4A에 수행하지 않기 때문에이이 일을하고있는 이유. M4A에서 네이티브 System.Data.dll을 사용하지만 WP에서는 내 버전을 사용합니다. 내 버전에는 필요한 유형 만 포함되므로이 방식이 다릅니다.
현재 Metro 및 Desktop 응용 프로그램을 사용하여 테스트 중이며 예외가 발생한 곳입니다. 나는 M4A 런타임이 실제로 체크를하지 않는다는 사실에 대해 막연하게 기억하지만, 필자는 라이브러리가 데스크톱에서도 작동하기를 바라고있다.
누구나 나를위한 조언이 있습니까, 아니면이 모든 것이 나쁜 습관입니까?
강력한 이름이없는 System.Data는 어디에서 왔습니까? 또한 어떤 플랫폼에 문제가 있습니까? 데스크톱 일 뿐인 경우 AppDomain.AssemblyResolve를 처리합니까? * 개인적으로 (다중 플랫폼 라이브러리에 대한 내 자신의 경험을 바탕으로), 플랫폼 당 빌드를 쉽게하고 적절한 dll을 참조하는 것이 더 쉽다고 생각됩니다. NuGet 배치를 사용하면 자동화가 매우 쉽습니다. –