AssemblyResolve пытается получить версию, отличную от той, которая указана в Assembly.Load.C#

Место общения программистов C#
Гость
AssemblyResolve пытается получить версию, отличную от той, которая указана в Assembly.Load.

Сообщение Гость »


У меня есть собственный код разрешения ассемблера, который работает некорректно. Сначала я запускаю фрагмент кода, который пытается обнаружить все сборки, на которые ссылается данная библиотека C#, и, похоже, возвращает правильные результаты. Затем я пытаюсь загрузить эти библиотеки, на которые имеются ссылки, чтобы обнаружить другие необходимые библиотеки (по сути, я пытаюсь создать список ВСЕХ библиотек, которые могут понадобиться данной DLL).

В этом конкретном случае у меня есть ссылка на объект Assembly на SomeAssembly.dll, версия 1 (которая, по-видимому, является правильной версией). Однако при запуске Assembly.Load по этой ссылке я ввожу событие AssemblyResolve с ResolveEventArgs, указывающим на SomeAssembly, версия 2. Попытка загрузить «ожидаемую» версию (т. е. версию 1) приводит к сбою.

а) Зачем C# менять версию таким образом?
б) Могу ли я «переопределить», какую версию я хочу загрузить в событии AssemblyResolve?

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