dnx build - тип или пространство имен не найдено. Отсутствует ссылка?

Я сделал пустое веб-приложение asp.net с новой комбинацией утилит dnu/dnx/vscode.

Он работает нормально, пока я не попытаюсь добавить сторонние библиотеки.

Я попытался добавить MongoDB с помощью следующего cmd:

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

но когда я пытаюсь сослаться на монго, ничего не получается:

using MongoDB.Bson;

VSCode дает мне intellisense для добавления этого пространства имен, но добавляет красную волнистую линию под 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 полностью нетронут, за исключением добавленной зависимости монго:

{
  "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"
  ]
}

person Vegar    schedule 10.05.2015    source источник


Ответы (3)


Проверьте, какие фреймворки перечислены в вашем project.json файле, и нужна ли вам дополнительная или другая зависимость для coreclr-подобного фреймворка.

person Johannes Rieken    schedule 11.05.2015
comment
Я добавил полный файл project.json для справки. Я не уверен, как я могу узнать, нужна ли мне дополнительная или другая зависимость для coreclr-ish framework. Я действительно не знаю, что такое coreclr-фреймворк... - person Vegar; 11.05.2015

Возможно, вам придется перезагрузить редактор при добавлении новых зависимостей. Палитра команд -> Перезагрузить окно

Ответить в твиттере по этому поводу

Изменить: возможно, вам это не поможет, но эта тема может быть связана. Похоже, что пакет драйверов MongoDB сложно запустить с некоторыми версиями ASP.NET.

person Slowmove    schedule 13.05.2015
comment
Я уже пробовал все возможные способы перезапуска, от палитры команд до выключателя питания, но безрезультатно. :-) Может ли это быть что-то конкретное для пакета nuget MongoDb? - person Vegar; 13.05.2015
comment
Вероятно, вам это не поможет, но этот поток может быть связан. Похоже, что пакет драйверов MongoDB сложно запустить с некоторыми версиями ASP.NET. - person Slowmove; 13.05.2015
comment
Наверное, это действительно так! второй ответ, кажется, помогает! Спасибо! - person Vegar; 13.05.2015
comment
Slowmove, я думаю, вам следует изменить свой ответ, чтобы включить свой комментарий, так как я не могу принять комментарий в качестве ответа.... - person Vegar; 20.05.2015

Это связано с тем, что диск MongoDb С# еще не поддерживает CoreCLR. См. это обсуждение. Просто удалите "dnxcore50": {} из project.json и все заработает.

Ранее (Beta5) у меня была такая же ошибка не дает смысла. Теперь я понимаю, что теперь в ASP.NET 5 Beta8 возникает значимая ошибка:

Зависимость MongoDB.Driver.Core 2.1.0 в проекте не поддерживает фреймворк DNXCore, версия = v5.0.

person CallMeLaNN    schedule 05.11.2015