3

我已将第三方 .net 库导入到我的 Mono for Android 项目中,该项目使用 DataSetExtension 库。当我尝试编译时,我收到以下错误消息:

加载程序集时出现错误 51 异常:System.IO.FileNotFoundException:无法加载程序集“System.Data.DataSetExtensions,版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089”。也许它在 Mono for Android 配置文件中不存在?文件名:Xamarin.Android.Tasks.ResolveAssemblies.AddAssemblyReferences 中 Monodroid.Tuner.MonoDroidResolver.Resolve(AssemblyNameReference 参考,ReaderParameters 参数)中的“System.Data.DataSetExtensions.dll”(List`1 程序集,AssemblyDefinition 程序集)

要解决此问题,我可以从 GAC 添加 .net System.Data.DataSetExtensions,并将其设置为本地复制。但是,有没有人知道当我部署到设备时它是否会起作用?

4

1 回答 1

3

这通常不是一个好方法,因为如果 DLL 尝试访问 Mono for Android 配置文件中不可用的内容,您的应用程序将会崩溃。这个答案有更多的细节。Xamarin 网站上还提供了配置文件中包含的程序集列表。在许多情况下,Android 的 Mono 配置文件与 Silverlight 的配置文件非常相似,并且由于 Silverlight 不提供 System.Data.DataSetExtensions,所以我并不奇怪它在这里不存在。

您可能可以尝试的一件事是根据 Mono for Android 配置文件自己编译 System.Data.DataSetExtensions。我不知道这是否可行并且我自己也没有尝试过,但这将是一种确定是否可行的简单方法,并且比在您的应用程序中链接到 .NET 4.0 DLL 更安全。Mono 的 System.Data.DataSetExtensions 实现在他们的 Github 存储库中可用。

于 2012-06-25T13:53:33.873 回答