Понимание нового DNX

Я изучаю DNX (ASP.NET) и столкнулся с парой проблем. Под проектом в узле «Ссылки» вы теперь видите «.NET Framework 4.5.1» и «.NET Platform 5.4».

Теперь я работаю над приложением, которое размещается на Mongo, и при его установке через Nuget ссылка добавляется только в .NET Framework 4.5.1.

Когда я создаю свое приложение, я вижу много ошибок, связанных с не найденным пространством имен MongoDB, несмотря на то, что они окрашены и могут использоваться в исходном коде (у меня есть intellisense).

Кто-нибудь может объяснить мне, что не так?


person Complexity    schedule 10.12.2015    source источник


Ответы (1)


Это связано с тем, что ваш код создается как для «классической среды CLR», так и для ядра .NET (это значение по умолчанию в файле->новый проект при создании проекта в Visual Studio).

Как видно, пакет MongoDB nuget доступен только для «классической среды CLR», поэтому ваш код не может быть создан для базовой среды CLR. Один из вариантов — отказаться от поддержки CoreCLR: вы можете сделать это, удалив ее из части «frameworks» в файле project.json.

Теперь я ничего не знаю о пакете nuget MongoDb... возможно, есть версия CoreCLR... если это так, то вам нужно добавить эту зависимость для CoreCLR (может быть, кто-то знает, есть ли поддержка CoreCLR вообще и могу расширить свой ответ ..)

person gregkalapos    schedule 10.12.2015
comment
Я удалил часть .NET Core в файле project.json, так что это уже хорошо. Но должен ли я удалить Core также из проектов, ссылающихся на проект, содержащий пакет MongoDB nuget? Если да, то правильно ли предположить, что мне нужно удалить поддержку ядра .NET из всех моих пакетов. - person Complexity; 10.12.2015
comment
Да, поскольку проект со ссылкой на MongoDB не может быть собран для CoreCLR... поэтому проект со ссылкой также не может быть собран для coreclr. - person gregkalapos; 10.12.2015
comment
Хорошо, у меня все еще есть некоторые ошибки при сборке, но сейчас это начинает обретать смысл. Спасибо за помощь. - person Complexity; 10.12.2015