Код: Выделить всё
net48;netstandard2.1
И в библиотеке классов, и в проектах приложений WPF установлен пакет NuGet Microsoft.EntityFramework.SqlServer v6.5.1, который извлекает Пакеты NuGet EntityFramework v6.5.1 и Microsoft.Data.SqlClient v5.1.5 как транзитивные зависимости. Microsoft.Data.SqlClient зависит от Microsoft.Identity.Client >= 4.56.0 и Azure.Identity >= 1.10.3.
Я обновил Azure.Identity до 1.13.2 (на данный момент последняя), поскольку все версии старше 1.11.4 были помечены как уязвимые. При обновлении Azure.Identity также обновляется Microsoft.Identity.Client до версии 4.67.2. В обоих проектах установлена одна и та же версия обоих пакетов.
Я пытаюсь использовать Update-Database, чтобы применить миграцию кода к моей базе данных. Я выбрал приложение WPF в качестве проекта запуска отладки решения, а библиотека классов модели EF 6 выбрана в качестве «проекта по умолчанию» в консоли диспетчера пакетов NuGet, где я запускаю команду PowerShell Update-Database. .
Когда я запускаю Update-Database, я получаю следующее исключение:
System.TypeInitializationException : Инициализатор типа для «Microsoft.Data.SqlClient.SqlAuthenticationProviderManager» вызвало исключение.
System.IO.FileLoadException: не удалось загрузить файл или сборку «Microsoft.Identity.Client, Version=4.56.0.0, Culture=neutral, PublicKeyToken=0a613f4dd989e8ae' или одну из его зависимостей.
Определение манифеста найденной сборки не не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)
Похоже, сборка Microsoft.Data.SqlClient отклоняет обновленную версию Microsoft.Identity. Client, хотя это должна быть совместимая версия в соответствии с требованиями зависимостей пакета NuGet.
Если я понизлю версию Azure.Identity до v1.10.3 (которая транзитивно позволяет Microsoft.Identity.Client перейти на версию v4.56.0, которая также помечена как уязвимая), я больше не получаю исключений при загрузке сборки.
Однако я не заинтересован в том, чтобы в моем проекте были известны уязвимые пакеты. Почему эти сбои загрузки сборки происходят, когда у меня включена функция «Автоматическое создание перенаправлений привязки»? Есть ли способ исправить это, кроме принятия уязвимых пакетов?
Подробнее здесь: https://stackoverflow.com/questions/793 ... hen-loadin