System.Data.DataSetExtensions并不存在于Mono for Android配置文件中

时间:2012-06-25 11:15:33

标签: mono xamarin.android system.data

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

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

要解决此问题,我可以从GAC添加.net System.Data.DataSetExtensions,并将其设置为copy local。但是,是否有人知道我在部署到设备时是否可行?

1 个答案:

答案 0 :(得分:3)

这通常不是一个好方法,因为如果DLL尝试访问Mono for Android配置文件中不可用的内容,您的应用程序将崩溃。 This answer有更多细节。 Xamarin's site还提供了配置文件中包含的程序集列表。在许多情况下,Mono for Android配置文件与Silverlight非常相似,并且由于System.Data.DataSetExtensions不适用于Silverlight,因此我不会感到惊讶。

您可能尝试的一件事是针对Mono for Android配置文件自行编译System.Data.DataSetExtensions。我不知道这是否有效并且没有自己尝试过,但这将是一种简单的方法来确定它是否可行,并且比在应用程序中链接到.NET 4.0 DLL更安全。单their Github repository中提供了Mono的System.Data.DataSetExtensions实现。