Различия будут
- отметка времени в заголовке PE
- GUID отладочных данных, если имеется
(и, может быть, что-то еще, согласно другим выводам, которые вы опубликовали?) Чтобы увидеть их, запустите dumpbin /all /rawdata:none
для обеих сборок в командной строке VS.
Чтобы сделать это правильно, вам нужно написать инструмент сравнения, который бы это понимал и игнорировал эти байты - или брал копии исполняемых файлов, очищал метку времени и GUID, а затем сравнивал эти версии. Или, в крайнем случае, вы могли бы использовать что-то вроде fc /b
, как подсказывает controlfreak, и предположить, что если <20 байтов отличаются (4 для метки времени, 16 для GUID), то это, вероятно, то же самое. </p>
Вы можете с легкостью избежать использования сборки с очищенной отметкой времени - AFAIK она используется только для кэширования экспортированных смещений символов в других библиотеках DLL, если вы подключите их, но, вероятно, безопаснее оставить все как есть. Если вам действительно нужны двоичные идентичные сборки, я предлагаю вам изменить процессы, чтобы вы никогда не выполняли чистую сборку, если вам это действительно не нужно.