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

Изглед: 30883|Отговор: 1

[Източник] .NET/C# Reference Разрешаване на конфликти на DLL версии

[Копирай линк]
Публикувано в 4.06.2018 г. 16:02:54 ч. | | | |
Не успя да зареди файла или асемблера "Common.Logging, Version=2.1.1.0, Culture=neutral, PublicKeyToken=af08829b84f0328e" или някоя от неговите зависимости. Дефиницията на манифеста на намерената асемблея не съвпада с референтната асемблея. (Изключение от HRESULT:0x80131040)

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

Детайли за изключения: System.IO.FileLoadException: Не успя да зареди файл или асемблер "Common.Logging, Version=2.1.1.0, Culture=neutral, PublicKeyToken=af08829b84f0328e" или някоя от неговите зависимости. Дефиницията на манифеста на намерената асемблея не съвпада с референтната асемблея. (Изключение от HRESULT:0x80131040)

Грешка в източника:

Необработено изключение беше генерирано по време на изпълнението на текущата уеб заявка. Можете да използвате следната информация от стека изключения, за да определите причината за аномалията и къде е настъпила.

Проследяване на асемблера: Следната информация може да помогне да се определи защо сборката "Common.Logging, Version=2.1.1.0, Culture=neutral, PublicKeyToken=af08829b84f0328e" не се е заредила.


Понякога виждаме горната грешка.

Причина за грешка

Проект А се позовава на xxx.dll, Проект Б също се позовава на xxx.dll, а Проект А се отнася до Проект Б, както е показано на фигурата по-долу:



И проектът А, и проект Б се отнасят до xxx.dll, но проект А се отнася до по-висока версия на dll, а проект Б се отнася до по-ниска версия.

Решение

<bindingRedirect>Element, пренасочвайте една асемблерна версия към друга.

oldVersion       

  • Изисквани свойства
  • Уточнява версията на асемблера, която първоначално е била поискана. Номерът на асемблерната версия е във формат major.minor.build.revision. Всяка част от този номер на версията има валидна стойност между 0 и 65535.
  • Можете също да зададете диапазон от версии в следния формат:
  • н.н.н.н.н-н.н.н.н.



newVersion

  • Задължителни свойства.
  • Уточнява версията на асемблера за използване вместо първоначално поискания формат на версията: n.n.n.n
  • Тази стойност може да посочи версия преди oldVersion.



Линк към документацията:https://docs.microsoft.com/zh-cn ... ingredirect-element

Официални примери:



Затова моето решение е да го настроя така в web.config:







Предишен:Тук съм, моля, обръщайте повече внимание и се учете един от друг
Следващ:Решение: Инсталаторът, използван за инсталиране на Visual Studio, е незавършен
 Хазяин| Публикувано в 22.10.2022 г. 10:03:58 ч. |
[Практическа експлоатация] Конфликти между позоваване на различни версии на DLL, които разчитат на пренасочвания
https://www.itsvse.com/thread-10376-1-1.html
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com