Подтвердить что ты не робот

Инструмент для сравнения DLL и разобрать различия?

Кто-нибудь знает подходящий инструмент, который будет сравнивать две разные версии одной и той же библиотеки и извлекать различия?

спасибо

4b9b3361

Ответ 1

Отражатель имеет инструмент Diff.

Ответ 2

dotPeek из JetBrains также можно использовать. Это также бесплатно.

  • Откройте сборку в dotPeek
  • Выберите сборку
  • Файл → Экспорт в проект
  • Выберите местоположение на диске

Повторите описанное выше для сборки, которую вы хотите сравнить, затем откройте две папки в инструменте diff. Я использовал WinMerge.

Вы заметите, что подавляющее большинство файлов имеют отличия. Это связано с тем, что в файлах есть комментарий сверху, как этот

// MVID: {some guid here}

Вы можете создать фильтр в WinMerge, чтобы игнорировать его

  • Инструменты → Фильтр...
  • Перейдите на вкладку "Линейные фильтры".
  • Добавьте следующий фильтр ^// MVID:

Когда вы сходите на изменения, он сканирует папки и игнорирует любую строку, начинающуюся с этого комментария. Теперь вы должны увидеть только те изменения, которые вас интересуют.

Ответ 3

Почему бы не разобрать сначала, а затем сравнить?

Ответ 5

Используйте .NET Reflector (Бесплатная версия - это все, что вам нужно), чтобы открыть DLL, затем щелкните правой кнопкой мыши и выберите экспортировать их в отдельные каталоги.

Затем используйте ExamDiff Pro для сравнения каталогов (вы можете получить 30-дневную бесплатную пробную версию). Вы можете перемещаться по подпапкам и открывать каждый файл по мере необходимости в новом окне сравнения (просто дважды щелкните в окне ExamDiff Pro). Работает потрясающе!

В ExamDiff Pro также есть плагин Dump PE32, который будет выполнять сравнение непосредственно между файлами .dll и .exe. Это полезно для просмотра изменений заголовков и бинарных разностей флагов, но не будет декомпилировать их для вас (так что используйте метод Reflector выше).

Ответ 6

У команды Microsoft BCL есть инструмент для этого, он называется LibCheck и может быть найден здесь

http://blogs.msdn.com/b/bclteam/archive/2005/03/21/400123.aspx

Это старый инструмент, и мне пришлось перекомпилировать исходный код, используя более позднюю версию среды выполнения, но она хорошо работает и предоставляет html-отчеты об изменениях.