Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 5752|Отговор: 3

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

[Копирай линк]
Публикувано на 2022-10-22 10:03:33 | | | |
Изисквания: Проектът трябва да се позовава на много SDK-та на трети страни, като някои от тях ще се позовават на често използвани DLL (като :Newtonsoft.Json.dll), което ще накара целия проект да се позовава на различни версии на една и съща DLL, а проектът ще изведе само един файл със същите резултати от компилиране на DLL.

Прости проблеми с зависимостта на DLL версиите могат да бъдат посочени по-долу:

.NET/C# Reference Разрешаване на конфликти на 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 услуги за Home Media 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