Почему Microsoft.Data.SqlClient выдает исключение TypeInitializationException при загрузке Microsoft.Identity.Client во C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Почему Microsoft.Data.SqlClient выдает исключение TypeInitializationException при загрузке Microsoft.Identity.Client во

Сообщение Anonymous »

У меня есть модель Entity Framework 6 (сначала код, с включенной миграцией и отключенной автоматической миграцией) в библиотеке классов, предназначенной для .NET 4.8 и .NET Standard 2.1 (AnyCPU). Это файл .csproj в стиле SDK. Она многоцелевая, поэтому я могу использовать одну и ту же модель как в проектах .NET Framework, так и в проектах .NET Core, что также является причиной того, что в модели используется EF6 вместо EF Core.

Код: Выделить всё

net48;netstandard2.1

В том же решении у меня есть приложение WPF .NET Framework 4.8 x64, которое использует библиотеку классов модели EF 6 через ссылку на проект. Это проект .csproj старого стиля, а не SDK, поскольку это проект WPF, ориентированный только на .NET 4.8 (только). В этом проекте включено «Автоматическое создание перенаправлений привязки». Этот проект должен быть ориентирован на .NET 4.8, поскольку у него есть другие зависимости, недоступные для .NET 5+, и он нацелен на x64, а не на AnyCPU, поскольку он использует взаимодействие P/Invoke с x64 C++ DLL.
И в библиотеке классов, и в проектах приложений 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Преобразование приложения для использования Microsoft.Data.SqlClient в Entity Framework вместо System.Data.SqlClient
    Anonymous » » в форуме C#
    0 Ответы
    38 Просмотры
    Последнее сообщение Anonymous
  • System.data.sqlclient против microsoft.data.sqlclient
    Anonymous » » в форуме C#
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous
  • System.data.sqlclient to microsoft.data.sqlclient: endexecutereader ошибка/ошибка
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • System.data.sqlclient to microsoft.data.sqlclient: endexecutereader ошибка/ошибка
    Anonymous » » в форуме C#
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • TypeLoadexception Обновление от system.data.sqlclient до microsoft.data.sqlclient
    Anonymous » » в форуме C#
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»