无法解析程序集或Windows元数据文件'System.Data.dll'

本文关键字:System dll Data 文件 元数据 程序集 Windows | 更新日期: 2023-09-27 18:05:43

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

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.

请帮助我提前谢谢。

无法解析程序集或Windows元数据文件'System.Data.dll'

看起来system.data对metro应用程序不可用。普遍的共识似乎是,你必须创建一个中间的"中间"层(使用WCF等技术),以允许你的metro应用程序与数据库通信。

引用:

  • 使用c# Metro App从SQL中检索数据
  • 系统。Metro风格应用程序可用的数据
  • WinRT系统。数据-连接到SQL

虽然这些链接在标题中有SQL语句,但它们真正解决的是将metro应用程序直接连接到任何数据库。

以下是上面一个链接的回答:

你是正确的,系统。数据不在那里(当我第一次开始使用WinRT时,我也在寻找同样的东西)。你也不能引用它。如果你想与SQL数据库对话,你将需要使用某种其他协议(WebService, SOAP, WCF等)。


评论中的后续问题:

我试图与mongodb连接,而不是sql。有必要有系统吗?用于此目的的数据?

当我尝试这个时,我可以单独引用MongoDB.Bson.dll和项目构建,但是一旦我引用MongoDB.Driver.dll,我就得到了与您相同的消息。

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

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

我知道这似乎让事情变得更复杂,特别是如果你只是想玩,但这显然是微软对他们的地铁应用程序做出的设计决定。

看看这些帖子,它提到DLL还不可用:http://social.msdn.microsoft.com/forums/en us/datamarket/thread/385475ce edf9 - 416 f - b0f7 - 1369760 aa73b/