Вопрос

Существуют ли какие-либо хорошие программы для сравнения с compile .СЕТЕВЫЕ сборки?

Например, у меня есть HelloWorld.dll (1.0.0.0) и HelloWorld.dll (2.0.0.0), и я хочу сравнить различия, как я могу это сделать?

Я знаю, что могу использовать .NET Reflector и использовать плагин Assembly Diff.Есть ли какие-нибудь другие хорошие инструменты для этого?

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

Решение

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

Два пути.

Вы можете использовать ILDASM и использовать классические инструменты.

Или вы можете использовать NDepends, что обойдется для этой функции.

[Часть к C # раздувает ..]

Мне просто нужно было сравнить две редакции одной и той же библиотеки DLL, которые имели одинаковую версию (мне нужно было внедрить небольшое исправление и развернуть библиотеку DLL в рабочей среде, но я хотел убедиться, что никакие другие изменения не просочились в код).В идеале я бы хотел, чтобы надстройка Assemby Diff показала мне разницу, но она не работает (она думает, что я сравниваю библиотеку DLL с самой собой).Итак, вот что я сделал:

  • Создал две папки для хранения разобранных исходных файлов.
  • Использовал Отражатель's Экспорт опция (из контекстного меню) для создания исходных файлов из каждой библиотеки DLL в папках, созданных на предыдущем шаге.
  • Воспользовался бесплатным Разница инструмент для сравнения двух каталогов;инструменты показали мне измененные файлы и разницу.

Это немного запутанно, но, кажется, работает.Однако я хотел бы, чтобы надстройка Assembly Diff работала.

Обновить:Предполагается, что последняя версия надстройки Assembly Diff должна устранить проблему сравнения двух версий одной и той же сборки.Дайте ему попробовать.

Инструмент NDepend предлагает множество функций для обработки.РАЗНИЦА в ЧИСТОМ коде. Отказ от ответственности:Я являюсь одним из разработчиков этого инструмента.

Панель Поиск по изменению предназначен для просмотра различий в коде сборок.Обратите внимание на это:

  • Вы можете подключить к NDepend любой инструмент code diff, используемый в меню Сравните старую и более новую версии исходного файла
  • Если у вас нет исходного кода, только необработанные сборки, есть вариант Сравните старую и новую версии в разобранном виде с Reflector

NDepend Search by Diff Panel

Обратите также внимание на скриншоте, что Запрос кода CQLinq генерируется для просмотра различий.

from m in Application.Methods 
where m.CodeWasChanged() 
select new { m, m.NbLinesOfCode }

Многие другие запросы и правила diff по умолчанию предлагаются по умолчанию, что позволит вам просматривать.Разумно используйте NET code diff.

Еще один вариант - LibCheck от Microsoft.

Довольно старый консольный инструмент для получения публичного API diff. Я не мог работать без отладки и ретаргетинга на более свежую версию .net. Тем не менее, это дало мне очень четкий вывод, и я собираюсь использовать его позже.

Вот статья со скриншотами ,

У Java есть хороший вариант: Утилиты семантической различий

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