Определить ссылки проекта на mscorlib - PullRequest
2 голосов
/ 18 января 2010

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

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

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

Ответы [ 3 ]

2 голосов
/ 18 января 2010

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

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

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

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

0 голосов
/ 18 января 2010

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

Доброжелательность,

Dan

0 голосов
/ 18 января 2010

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

...