Есть ли способ проверить, изменило ли изменение кода двоичный файл?

Я предполагаю, что если код C# не изменится, сгенерированный IL будет одинаковым для каждой сборки. Проблема в том, что 2 EXE-файла, сгенерированные из одного и того же кода, имеют разные хеши.

Я хотел бы проверить, приводит ли изменение стиля кода к другому IL. Как я могу этого добиться?


person Jader Dias    schedule 14.09.2012    source источник
comment
Каждый раз, когда вы создаете другой двоичный файл, даже если код идентичен (сборка создает GUID, встроенный в сборку, который будет другим при каждой компиляции).   -  person Oded    schedule 14.09.2012
comment
Возможно, мы сможем помочь, если вы объясните, почему вы хотите, чтобы изменение стиля кода привело к созданию другого IL.   -  person Dour High Arch    schedule 15.09.2012
comment
@DourHighArch Нет, я хочу убедиться, что ничего не изменилось.   -  person Jader Dias    schedule 17.09.2012


Ответы (3)


Есть несколько инструментов, которые вы можете использовать для дизассемблирования EXE и сравнения их содержимого. Посмотрите этот блог http://immitev.blogspot.com.br/2008/10/ways-to-compare-net-assemblies.html

[]'s

person Fabio    schedule 14.09.2012
comment
Между прочим, на сайте JustDecompile (еще один дизассемблер) Telerik есть предложения, которые соответствуют вашим потребностям. Я проголосовал за это, давайте поможем привлечь внимание разработчиков: justdecompile.uservoice.com/forums/ - person Fabio; 14.09.2012

Вы делаете неверное предположение. При перестроении без изменения кода будет получен другой двоичный файл.

Видеть:

https://stackoverflow.com/a/8927785/426894

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

И

http://blogs.msdn.com/b/ericlippert/archive/2012/05/31/past-performance-is-no-guarantee-of-future-results.aspx

Гарантируется ли, что повторная компиляция одной и той же программы C# приведет к одному и тому же двоичному выводу?

No.

person asawyer    schedule 14.09.2012

Это можно сделать с помощью ILSpy, браузера сборок .NET с открытым исходным кодом и декомпилятора.

введите здесь описание изображения

person D'Arcy Rittich    schedule 14.09.2012