Инструмент для сравнения .dll и выявления различий?[закрыто]

StackOverflow https://stackoverflow.com/questions/590863

  •  09-09-2019
  •  | 
  •  

Вопрос

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

Спасибо

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

Решение

Рефлектор имеет Разница инструмент.Примечание:Reflector теперь является платным программным обеспечением.

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

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

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

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

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

// MVID: {some guid here}

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

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

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

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

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

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

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

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

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

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

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