Почему двоичный вывод не совпадает при повторной компиляции?

Я использую сценарий сборки для компиляции нескольких проектов C #. Двоичный вывод копируется в папку результатов, перезаписывая предыдущую версию файлов, а затем добавляется / фиксируется в Subversion.

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

Я намеренно не использую какие-либо специальные временные метки где-либо, но может ли компилятор (Microsoft, включенный в .NET 4.0) добавлять временные метки сам?

Причина, по которой я спрашиваю, заключается в том, что я передаю результат в Subversion, и из-за того, как работает наш сервер сборки, зарегистрированные изменения запускают перестройку, в результате чего вновь измененные двоичные файлы возвращаются в круг.

34
задан Jeffrey Hantin 17 February 2016 в 03:54
поделиться