Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 5752|Ответ: 3

[Источник] [Практическая эксплуатация] Конфликты между обращением к разным версиям DLL, которые используют перенаправления

[Скопировать ссылку]
Опубликовано 2022-10-22 10:03:33 | | | |
Требования: Проект должен ссылаться на многие сторонние SDK, и некоторые из них будут ссылаться на распространённые DLL-файлы (например, :Newtonsoft.Json.dll), что приведёт к тому, что весь проект будет ссылаться на разные версии одной и той же DLL, и проект выдаст только один файл с одинаковыми скомпилированными результатами.

Простые проблемы зависимостей версий DLL приведены ниже:

.NET/C# Ссылка на разрешение конфликтов в версиях DLL
https://www.itsvse.com/thread-4818-1-1.html
Ссылка:Вход по гиперссылке виден.

Если ссылка на DLL относится не только к другой версии, но и к publicKeyToken, как это следует решать? В случае Newtonsoft.Json.dll проект ссылается на файл с другой версией и publicKeyToken.



- Newtonsoft.Json.dll,version:12.0.0.0,publicKeyToken:30ad4fe6b2a6aeed
- Newtonsoft.Json.dll,version:4.0.0.0,publicKeyToken:null

Простая настройка перенаправления ссылок не решает проблему, конфигурация выглядит следующим образом:

Когда вы вызываете сторонний SDK-метод, основанный на Newtonsoft.Json версии 4.0.0.0, вы получите следующую ошибку:

Не удалось загрузить файл или ассемблер «Newtonsoft.Json, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null» или одну из его зависимостей. Определение манифеста найденной сборки не совпадает с ссылкой на сборку. (Исключение из HRESULT:0x80131040)
Решение: создать новую папку JSON4 в каталоге bin, поместить версию Newtonsoft.Json.dll 4.0.0.0 в эту папку и изменить конфигурацию следующим образом:

(Конец)





Предыдущий:[Настоящий бой]. NET/C# реализует резервные копии баз данных MySQL на основе MySqlBackup.NET
Следующий:【Practical Combat】Build Thunder Download и DLNA-сервисы для домашнего медиа Docker
Опубликовано 2022-10-22 12:02:36 |
Учитесь учиться
Опубликовано 2022-10-24 10:59:38 |
Этот трюк работает, меня раздражает Newtonsoft.Json.dll 4.0 и 6.0
Опубликовано 2022-11-12 13:08:42 |
Учитесь учиться
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com