2016-07-25 2 views
4

Я работаю в Visual Studio 2015 Update 3 и .NET Core 1.0. У меня есть проект веб-API, который имеет тип .NETCoreApp v1.0. Когда я добавляю библиотеку классов .NET Core, он имеет тип .NETStandard v1.6. Я могу добавить эту библиотеку в проект веб-API в качестве ссылки, но она не распознается, когда я пытаюсь добавить с помощью операторов.Как создать библиотеку .NET Core Я могу ссылаться из .NET Core App (Web API)

Если я создаю другой проект типа .NETCoreApp, я могу ссылаться на него и использовать классы без проблем.

Как использовать библиотеку классов .NET Core из моего приложения .NET Core?

Edit/Update:

  1. Это только кажется редактор/Intellisense вопрос, потому что, несмотря на предупреждения редактора, .NETCoreApp ли построить и запустить, вызывая в библиотеку классов.
  2. Я запускаю Resharper, который, как я вижу, обвинен в аналогичных проблемах с другими типами проектов: я проверил, что у меня есть последняя версия, и очистил кэш Resharper и перезапустил VS2105.

ответ

4

Это проблема с решаром. В это время Resharper (v2016.1.2) не поддерживает .NET Core 1.0.

Есть 2 возможных решения:

  1. Uninstall Resharper, и родной IntelliSense работы Visual Studio.
  2. Установите версию Resharper 2016.2 EAP (программа раннего доступа). Я сделал это, и он работает. Очевидно, что это связано с предостережениями любого продукта EAP/beta.

Вот ссылка на Jetbrains forum post, где мне сказали, что .NET Core 1 еще не был поддержан и указал на версию EAP.

1

После того, как вы построили библиотеку, которая предназначается для netstandard1.X, вы можете:

  • Производят пакет NuGet с dotnet pack и разместить его на месте или на NuGet. Затем установите его в свой проект netcoreapp как и любая другая зависимость.
  • Если ваша библиотека и приложения являются частью одного и того же решения, сделать локальную ссылку:

project.json

"dependencies":{ 
    "MyLibrary.Core": { 
     "version": "1.0.0", 
     "target": "project" 
    } 
} 

target: project говорит dotnet искать в текущем растворе для зависимости вместо использования ваших фидов NuGet. Опять же, это работает, только если вы разрабатываете библиотеку и приложение в том же решении.

+0

Благодарим за полезный ответ, но он не касается моей проблемы, что является следующим шагом - после того, как у меня есть приложение .NET Core (которое работает) и добавлено в зависимость от библиотеки .NETStandard, Visual Studio не распознать библиотеку - под этим я подразумеваю: любые попытки ссылки на классы в библиотеке выделяются как ошибки с сообщением «Не удается разрешить символ« Имя библиотеки ». Я обновлю свой вопрос, чтобы устранить любую двусмысленность. – Peter

+0

@Ettery Я предположил, что проблема в том, что ссылка неверна.Имеет смысл, что вы получили ложный позитив от Resharper (я тоже столкнулся с этим). –