Выявление / устранение различий в идентичной сборке .NET EXE - PullRequest
1 голос
/ 16 мая 2011

Я снова пытаюсь сравнить два .exe-файла, на этот раз с некоторыми изменениями.

  • Сборка проекта в Microsoft Visual Studio 2010
  • Целевая структура проекта = .NET Framework 3.5 Профиль клиента

Я строю проект, запускаю dumpbin /rawdata на .exe и выводлю в текстовый файл. Затем я перестраиваю проект и запускаю dumpbin /rawdata на новом .exe и выводу в новый текстовый файл. Затем я проверяю каждый CRC, чтобы убедиться, что они одинаковы (между сборками изменений не происходит).

Я получаю разные значения CRC. Когда я запускаю необработанные данные через windiff, я вижу различия в разделе Raw Data #1, которые, на мой взгляд, являются фактическими данными, сгенерированными из исходного кода проекта (пожалуйста, исправьте, если я ошибаюсь).

В Raw Data #1 есть 3 области различия, одна из которых включает в себя .pdb.

Вопросы:

  1. Кто-нибудь знает, где можно отключить отладочную информацию в VS 2010 (аналогично Project Property Pages -> Config Properties -> Linker -> Debugging -> Generate Debug Info в VS 2005)
  2. Есть ли какие-нибудь хитрости, чтобы выяснить, где выделенные различия в WINDIFF действительно существуют в исходном коде?

Спасибо, ZayJay

PS - не стесняйтесь просить разъяснений, и еще раз большое спасибо. Я искал некоторое время с небольшим успехом. Так рада, что нашла этот ресурс.

РЕДАКТИРОВАТЬ / ОБНОВИТЬ Мой сдвиг теперь превратился в компиляцию кода с помощью ngen, чтобы обойти MSIL и все, что там показывалось, как отличия. Одно из различий было в этой области: <PrivateImplementationDetails>{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}.Dictionary ... и я не могу ничего сделать из ascii в другом разнице (я избавился от информации .pdb).

Я хотел бы знать, есть ли способ просмотреть / извлечь скомпилированный код для просмотра.

Я пробовал ngen display "App Name" и искал в WINDOWS/assembly, но не могу найти что-либо релевантное (также я не знаю на 100%, что я ищу ...)

Спасибо за ваше время, ZayJay

1 Ответ

1 голос
/ 17 мая 2011

Есть несколько инструментов для создания сборок, Скотт Хансельман перечисляет несколько из них в своем блоге.

Этот вопрос имеет еще несколько

...