2015-05-10 6 views
1

Я создал пустое веб-приложение asp.net с новой комьюнитурой dnu/dnx/vscode.dnx build - тип или пространство имен не найдено. Отсутствует ссылка?

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

Я пытался добавить 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" 
    }, 
    ... 

, но когда я пытаюсь ссылающийся Монго, вещи не работают:

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

ответ

1

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

+0

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

1

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

Answer on twitter regarding this issue

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

+0

Я уже пробовал каждый возможный способ перезапуска, от командной палитры до переключателя питания, но бесполезно. :-) Может ли это быть чем-то конкретным для пакета MongoDb nuget? – Vegar

+1

Возможно, вам не поможет, но [эта тема] (http://stackoverflow.com/questions/28484761/asp-net-5-with-mongodb) может быть связана. Похоже, что пакет драйверов MongoDB трудно запускать с som версиями ASP.NET. – Slowmove

+0

Наверное, это действительно так![Второй ответ] (http://stackoverflow.com/a/29973105/11956), похоже, делает трюк! Благодаря! – Vegar

1

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

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

The dependency MongoDB.Driver.Core 2.1.0 in project does not support framework DNXCore,Version=v5.0.