Пакеты Nuget не копируются в вывод при использовании .NETStandard.

Я хочу поделиться проектом между приложением WPF (.NET 4.6) и приложением .NET Core. Для этого я создал библиотеку .NET Standard, изначально создав переносимую библиотеку и преобразовав ее в Visual Studio 2015 в .NETStandard версии 1.3.

Однако библиотека .NETStandard должна ссылаться на Entity Framework (например), поэтому я добавил эту зависимость в project.json, и все строится успешно. Однако, когда я фактически запускаю приложение, я получаю исключение File Not Found, как только пытаюсь загрузить данные с помощью библиотеки Entity Framework. Это ожидаемо, поскольку ни один из пакетов nuget при использовании .NETStandard не копируется в выходной каталог (в отличие от использования nuget для обычного .NET), поэтому я вижу причину исключения.

Как исправить это/получить копирование зависимостей nuget для вывода при использовании библиотеки .NETStandard и ссылке из проекта .NET 4.6? (Ниже мой проект.json и рад добавить больше кода, если это необходимо).

{
  "supports": {},
  "dependencies": {
    "Microsoft.EntityFrameworkCore.Design": "1.1.0",
    "Microsoft.EntityFrameworkCore.Sqlite": "1.1.0",
    "Microsoft.NETCore.Portable.Compatibility": "1.0.1",
    "NETStandard.Library": "1.6.1"
   },
  "frameworks": {
    "netstandard1.3": {}
  }
}

person Laurence Bargery    schedule 27.12.2016    source источник
comment
Переключитесь на Visual Studio 2017 RC, и это единственная среда в Windows, которая упрощает эталонный сценарий проекта.   -  person Lex Li    schedule 28.12.2016


Ответы (1)


Microsoft, наконец, признала, что это проблема, и, как ожидается, исправит ее в NuGet версии 4.0. .1, первое обновление NuGet 4 после выпуска VS 2017.

Самый чистый обходной путь сейчас — добавить <RestoreProjectStyle>PackageReference</RestoreProjectStyle> в устаревший проект.

Однако по словам Роба Рельеа MS будет игнорировать это свойство после RTM, поэтому другое обходной путь — <PackageReference Update="PlaceholderToConvinceThisProjectToGetTransitivePackageReferenceFromProjectReferences"/>.

person Sourcerer    schedule 10.02.2017