有没有办法使用强命名程序集代替未命名程序集?
真正的问题是:
我正在创建一个引用另一个库(例如:System.Data.dll)的库(例如:SqliteOrm.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 和桌面应用程序进行测试,这就是发生异常的地方。我隐约记得 M4A 运行时实际上并没有进行检查,但我希望我的库也可以在桌面上工作。
有没有人对我有任何提示,或者这整件事是一个不好的做法?