Вывод стандартной библиотеки .NET не включает зависимости nuget - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть три проекта:

  1. Приложение ASP.NET Core MVC (для .NET Framework 4.6.2)
  2. Библиотека классов, содержащая мои EF Core Модели, Миграциии классы DbContext (для .NET Standard 2.0, ранее .NET Framework 4.6.2).
  3. Консольное приложение для обновления базы данных с помощью EF Core Migrations (для .NET Framework 4.6.2).

1 и 3 ссылаются на 2. Я только что заменил старую библиотеку классов .NET Framework новой, ориентированной на .NET Standard.Библиотека классов использует пакет Microsoft.EntityFrameworkCore.Proxies NuGet.

Все собирается без ошибок, все мои модульные тесты запускаются, а приложение ASP.NET Core запускается без проблем.Моя проблема в том, что консольное приложение для обновления базы данных строит, запускает, но сталкивается с ошибкой времени выполнения, когда оно инициализирует DbContext в этой строке в конструкторе:

ChangeTracker.LazyLoadingEnabled = false;

Sayingчто он не может загрузить сборку Microsoft.EntityFrameworkCore.Proxies.В ходе расследования я обнаружил, что файл Microsoft.EntityFrameworkCore.Proxies.dll не был в выводе сборки консольного приложения или проекта библиотеки классов.Единственным .dll в выходных данных проекта библиотеки классов был сам проект .dll, старая версия .NET Framework также содержала все .dll пакета NuGet в выводе, и она работала нормально, используя инструмент обновления базы данных.

Есть ли что-то еще, что необходимо для включения зависимостей в выходные данные стандартной библиотеки .NET?

Ответы [ 2 ]

0 голосов
/ 11 февраля 2019

Мне пришлось добавить .NET Framework 4.6.2 в список Target Frameworks для библиотеки классов.

В .csproj:

<PropertyGroup>
  <TargetFrameworks>netstandard2.0;net462</TargetFrameworks>
</PropertyGroup>

После этого он работает сприложение .NET Framework.

0 голосов
/ 06 февраля 2019

Возможно, вам придется напрямую ссылаться на что-то в этой библиотеке, чтобы убедиться, что средство отслеживания зависимостей видит там типы.

Нам действительно нужно было иногда работать с SQL-сервером Entity Framework в одной точке

private static readonly [proxylibnamespace].[somepublictype] _ProxyLibReference;

При этом иногда обходчик зависимостей видит прямую ссылку на тип и затем включает ее в окончательную сборку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...