Инструмент для сравнения.библиотеки DLL и разбирать различия? [закрытый]
Кто-нибудь знает приличный инструмент, который будет сравнивать две разные версии одной и той же dll и извлекать различия?
Спасибо
6 ответов:
Отражатель имеет инструментDiff . Примечание: отражатель теперь платное программное обеспечение.
DotPeek из JetBrains также может быть использован. Это также бесплатно.
- Откройте сборку в dotPeek
- выберите сборку
- File -- > Export to project
- выберите место на диске
Повторите вышеописанное для сборки, которую вы хотите сравнить,затем откройте две папки в инструменте diff. Я использовалWinMerge .
Вы заметите, что подавляющее большинство файлов имеют различия. Это потому, что файлы имеют комментарий в верхней части вот так// MVID: {some guid here}
Вы можете создать фильтр в WinMerge, чтобы игнорировать его
- Инструменты -- > Фильтр...
- перейти на вкладку "фильтры линий"
- добавьте следующий фильтр
^// MVID:
Когда вы одобрите изменения, он будет повторно сканировать папки и игнорировать любую строку, начинающуюся с этого комментария. Теперь вы должны увидеть только те изменения, которые вас интересуют.
Используйте .NET Reflector (Бесплатная версия-это все, что вам нужно), чтобы открыть библиотеки DLL, затем щелкните правой кнопкой мыши и выберите экспортировать их в отдельные каталоги.
Затем используйте ExamDiff Pro Для сравнения каталогов (вы можете получить 30-дневную бесплатную пробную версию). Вы можете перемещаться по вложенным папкам и открывать каждый файл по мере необходимости в новом окне сравнения (просто дважды щелкните в окне ExamDiff Pro). работает потрясающе!
ExamDiff Pro также имеет плагин Dump PE32, который сделаем сравнение непосредственно между ними .dll И.файл EXE. Это полезно, чтобы посмотреть на изменения заголовка и флаги бинарных различий, но не будет декомпилировать его для вас (так что используйте метод рефлектора выше).
У команды Microsoft BCL есть инструмент для этого, он называется LibCheck и может быть найден здесь
Http://blogs.msdn.com/b/bclteam/archive/2005/03/21/400123.aspx
Это старый инструмент, и мне пришлось перекомпилировать исходный код, используя более позднюю версию среды выполнения, но он хорошо работает и предоставляет html-отчеты об изменениях.