Обычная практика - загружать зависимости (разные версии DLL) в программу - PullRequest
0 голосов
/ 03 февраля 2020

Предположим, есть код, который использует 2 сторонних DLL. один - NLog.Extensions.Logging версия 1.6.1 для регистрации, другой - скажем, CryptoProvider.dll написанный в. net стандарт 2.0. NLog.Extensions.Logging внутренне использует Microsoft.Extensions.Logging версия 2.1.0, а CryptoProvider.dll внутренне использует Microsoft.Extensions.Logging версия 2.0.0. Так что теперь существует проблема несоответствия версий. Так как я должен проектировать для CryptoProvider DLL. так что решите проблему.

1 Ответ

0 голосов
/ 03 февраля 2020

есть возможность перенаправить привязку сборки, используя app.config файл assemblyBinding \ bindingRedirect , как показано ниже

      <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
      </dependentAssembly>

Это может перенаправить всю сборку Newtonsoft. Json ссылки на версию для разрешить до 12.0.0.0. Обычно VS добавляет эти перенаправления автоматически, если установленные пакеты имеют разные версии зависимостей.

Но это работает только в том случае, если между перенаправленной версией нет критических изменений.

Не уверен, что он будет работать для смешивания между . net framewok и. net сборки ядра.

Перенаправление привязки сборки для. net core может быть выполнено с использованием deps.json

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