【问题标题】:System.Data.DataSetExtensions doesn't exist in the Mono for Android profile在 Mono for Android 配置文件中不存在 System.Data.DataSetExtensions
【发布时间】:2012-06-25 11:15:33
【问题描述】:

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

加载程序集时出现错误 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(列出`1 个程序集,AssemblyDefinition 程序集)

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

【问题讨论】:

    标签: mono xamarin.android system.data


    【解决方案1】:

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

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

    【讨论】:

    • 我尝试了 Mono 实现,但是由于 guid 错误,它无法编译。我的解决方案是重写依赖 DataSetExtensions 的部分代码。此外,Mono 的实现目前还不完整。
    • 我可以从单声道编译 System.Data.DataSetExtensions 项目。感谢 Greg Shackles 的回答。
    • @AstronautTiger 你能(如果可能的话)分享更多关于你如何重写它的细节吗?我有点新,这可以工作,提前谢谢你
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多