Вопрос

Привет, ребята, у меня есть проект веб-сайта ASP.NET, который по какой-то причине настаивает на ссылке как на mscorlib 1.0.5, так и на mscorlib 2.0, и я не могу понять, почему.

Я проанализировал все указанные библиотеки DLL с помощью NDepend, и все они, похоже, ссылаются только на mscorlib 2.0.У меня есть пара веб-ссылок, но я не могу себе представить, почему это создаст дополнительную ссылку на dll 1.0.

У кого-нибудь есть идеи, почему я получу эту дополнительную ссылку или что я могу использовать, чтобы найти эту информацию?NDepend великолепен, но просто возвращается и говорит: «Нашёл 2 ссылки, используя более новую версию», так что это не помогает мне понять, почему у меня есть дополнительная ссылка...

Это было полезно?

Решение

Я думаю, что на данный момент лучше всего использовать ildasm.Использование ildasm в сборке приведет к появлению узла с именем «Манифест».Дважды щелкните этот узел, и он выгрузит IL-представление ссылок на сборки, включая указанный номер версии.Повторите это для всех ваших DLL, пока не найдете ту, которая ссылается на версию 1.0.

РЕДАКТИРОВАТЬ

Другим возможным решением было бы перечислить Assembly ценности и связанные с ними GetReferencedAssemblies метод.Это вернет массив AssemblyName значения, которые имеют соответствующий член версии.Он должен содержать фактическую версию сборки, на которую ссылается, а не версию.тот, который был действительно загружен.

Я не уверен на 100% в этом вопросе, и у меня сейчас нет удобного способа проверить это.

Другие советы

Попробуйте удалить ссылку и перекомпилировать - это покажет вам, что (если вообще что-то) зависит от более старой версии.

В вашем файле web.config может находиться ошибочная ссылка.

Доброта,

Дэн

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top