dnx build - 找不到类型或命名空间。缺少参考?

时间:2015-05-10 21:24:54

标签: mongodb visual-studio-code dnx

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

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

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

{
  "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"
  },
  ...

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

using MongoDB.Bson;

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

MongoDB

VSCode为我提供智能感知来添加此命名空间,但它在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

我在这里缺少什么?

我的{ "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" ] } 文件完全不受影响 - 除了添加的mongo依赖项:

refill(... Insert new data...)

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

添加新依赖项时,您可能还需要重新加载编辑器。命令调色板 - >重新加载窗口

Answer on twitter regarding this issue

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

答案 2 :(得分:1)

那是因为MongoDb c#驱动器还没有支持CoreCLR。见this discussion。只需删除"dnxcore50": {}中的project.json即可。

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

  

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