【问题标题】:Cannot resolve Assembly or Windows Metadata file 'System.Data.dll'无法解析程序集或 Windows 元数据文件“System.Data.dll”
【发布时间】:2013-03-23 17:26:17
【问题描述】:

我刚刚在 c#/XML 中创建了一个新的 windows 8 应用程序并下载 mongodb c# driver 并将其引用添加到我的项目中并遵循 tutorial 的其余部分,但是当我现在尝试运行我的应用程序时它会说

Cannot resolve Assembly or Windows Metadata file 'System.Data.dll'

Type universe cannot resolve assembly: System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.

请帮助我提前谢谢。

【问题讨论】:

  • 您安装了哪些版本的 .NET 框架?
  • @DavinTryon 我已经安装了 4.5

标签: c# mongodb windows-8 microsoft-metro


【解决方案1】:

system.data 似乎不适用于 Metro 应用程序。普遍的共识似乎是您必须创建一个中间“中间人”层(使用 WCF 等技术)以允许您的 Metro 应用程序与数据库进行通信。

参考资料:

虽然这些链接的标题中包含 SQL,但它们确实解决了将 Metro 应用程序直接连接到任何数据库的问题。

以下是上述链接之一的答案:

你是对的,System.Data 不存在(当我第一次开始使用 WinRT 时,我也在寻找同样的东西)。您也将无法引用它。如果您想与 SQL 数据库通信,您将需要使用某种其他协议(WebService、SOAP、WCF 等)。


评论中的后续问题:

我正在尝试连接 mongodb ,而不是 sql 。是否有必要为此目的拥有 system.data ?

当我尝试这个时,我可以自己引用 MongoDB.Bson.dll 并构建项目,但是一旦我引用 MongoDB.Driver.dll 我得到了和你一样的信息。

似乎 sql 驱动程序和 mongodb 驱动程序都需要System.Data.dll,您可以在标准的 winforms/wpf 应用程序中直接引用它(但可能不应该),但您不能在 Metro 应用程序中直接引用它。

如果你想使用 MongoDB,我想说有必要访问System.Data。因此,您必须创建一个单独的项目,该项目引用 MongoDB 驱动程序并实际执行与数据库的连接,并通过 WCF 调用或 Web 服务使您的 Metro 应用程序可以访问该项目。您只需要在 Metro 应用程序和数据库之间放置一些东西,因为您无法直接连接到它。

我知道这似乎让事情变得更加复杂,尤其是当你只是想玩玩的时候,但这显然是 Microsoft 针对他们的 Metro 应用程序做出的设计决定。

【讨论】:

    【解决方案2】:

    【讨论】:

    • 这些是我从谷歌问这个问题时的第一个结果,但这些链接没有帮助
    猜你喜欢
    • 2018-11-29
    • 2016-07-05
    • 2018-12-26
    • 2018-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-30
    相关资源
    最近更新 更多