Кто-нибудь знает подходящий инструмент, который будет сравнивать две разные версии одной и той же библиотеки и извлекать различия?
спасибо
Кто-нибудь знает подходящий инструмент, который будет сравнивать две разные версии одной и той же библиотеки и извлекать различия?
спасибо
Отражатель имеет инструмент Diff.
dotPeek из JetBrains также можно использовать. Это также бесплатно.
Повторите описанное выше для сборки, которую вы хотите сравнить, затем откройте две папки в инструменте diff. Я использовал WinMerge.
Вы заметите, что подавляющее большинство файлов имеют отличия. Это связано с тем, что в файлах есть комментарий сверху, как этот
// MVID: {some guid here}
Вы можете создать фильтр в WinMerge, чтобы игнорировать его
^// MVID:
Когда вы сходите на изменения, он сканирует папки и игнорирует любую строку, начинающуюся с этого комментария. Теперь вы должны увидеть только те изменения, которые вас интересуют.
Почему бы не разобрать сначала, а затем сравнить?
Используйте .NET Reflector (Бесплатная версия - это все, что вам нужно), чтобы открыть DLL, затем щелкните правой кнопкой мыши и выберите экспортировать их в отдельные каталоги.
Затем используйте ExamDiff Pro для сравнения каталогов (вы можете получить 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-отчеты об изменениях.