1

我使用新的 dnu/dnx/vscode 实用程序组合制作了一个空的 asp.net Web 应用程序。

在我尝试添加 3.party 库之前它工作正常。

我尝试使用以下 cmd 添加 MongoDB:

 dnu install MongoDb.Driver
 dnu restore

这会将 mongodb 依赖项添加到我的 project.json 文件中:

{
  "webroot": "wwwroot",
  "version": "1.0.0-*",
  "dependencies": {
    "Microsoft.AspNet.Mvc": "6.0.0-beta4",
    "Microsoft.AspNet.Server.IIS": "1.0.0-beta4",
    "Microsoft.AspNet.Server.WebListener": "1.0.0-beta4",
    "Microsoft.AspNet.StaticFiles": "1.0.0-beta4",
    "Kestrel": "1.0.0-beta4",
    "Microsoft.Framework.ConfigurationModel.Json": "1.0.0-beta4",
    "MongoDb.Driver": "2.0.0"
  },
  ...

但是当我尝试实际引用 mongo 时,事情失败了:

using MongoDB.Bson;

VSCode 给了我智能感知来添加这个命名空间,但它在下面添加了一个红色波浪线MongoDB和一个绿色波浪线Bson

当我尝试构建项目时

dnu build

消息失败

C:\source\.....cs(2,7): error CS0246: The type or namespace name 'MongoDB' could not be found (are you missing a using directive or an assembly reference?)

我在这里想念什么?

我的project.json文件完全没有受到影响 - 除了添加的 mongo 依赖项:

{
  "webroot": "wwwroot",
  "version": "1.0.0-*",
  "dependencies": {
    "Microsoft.AspNet.Mvc": "6.0.0-beta4",
    "Microsoft.AspNet.Server.IIS": "1.0.0-beta4",
    "Microsoft.AspNet.Server.WebListener": "1.0.0-beta4",
    "Microsoft.AspNet.StaticFiles": "1.0.0-beta4",
    "Kestrel": "1.0.0-beta4",
    "Microsoft.Framework.ConfigurationModel.Json": "1.0.0-beta4",
    "MongoDb.Driver": "2.0.0"
  },
  "commands": {
    "web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5000",
    "kestrel": "Microsoft.AspNet.Hosting --server Kestrel --server.urls http://localhost:5001"
  },
  "frameworks": {
    "dnx451": {},
    "dnxcore50": {}
  },
  "exclude": [
    "wwwroot",
    "node_modules",
    "bower_components"
  ],
  "publishExclude": [
    "node_modules",
    "bower_components",
    "**.xproj",
    "**.user",
    "**.vspscc"
  ]
}
4

3 回答 3

1

检查文件中列出了哪些框架,project.json以及是否需要coreclr-ish 框架的额外或不同依赖项。

于 2015-05-11T08:27:22.600 回答
1

添加新依赖项时,您可能还必须重新加载编辑器。命令面板 -> 重新加载窗口

在推特上回答这个问题

编辑:可能对你没有帮助,但这个线程可能是相关的。似乎 MongoDB 驱动程序包很难与 ASP.NET 的 som 版本一起运行。

于 2015-05-13T06:33:17.350 回答
1

那是因为 MongoDb c# 驱动器还不支持 CoreCLR。请参阅此讨论。只需删除"dnxcore50": {}你的project.json,它就会工作。

以前(Beta5)我得到了同样的错误并没有给出意义。现在我意识到现在在 ASP.NET 5 Beta8 中会产生有意义的错误:

项目中依赖MongoDB.Driver.Core 2.1.0 不支持框架DNXCore,Version=v5.0。

于 2015-11-05T14:41:50.143 回答