Так вопрос-то звучит по другому: есть исходники, в них не меняется ни один байт, собираем релиз и получаем контрольную сумму (КС1) всех составляющих. Далее берем все те же исходники(ни один байт, ни один символ не поменялся) и собираем релиз еще раз, получаем контрольную сумму (КС2).
КС1 и КС2 будут разными, так как во времясборки в PE заголовок exe'шников и dll записывается время сборки и контрольная сумма. Остальные байты exe'шника по идее должны быть одинаковы, исходники-то ведь не поменялись, правильно? А вот и неправильно! Как я понял, компилятор, например, в случае использования конструкции switch со стринговыми case'ами создает внутренний словарь(PrivateImplementationDetails) соответствия стринга ключу типа int, и присваивает этому словарю рандомный GUID при каждой пересборке.
Так вот вопрос-то в следующем: как скомпилить .Net приложение, чтобы контрольная сумма исполняемой части(отбросим PE-header) не менялась при перекомпиляции из одних исходников?
Ок, тогда как аудиторам подтвердить валидность релиза и соответствия исходников файлам релиза?
Тем более, другие отделы, занимающиеся, например, разработкой софта для Unix-систем обходят это ограничение замораживанием системной даты, что, в принципе, равнозначно тому, что делаю с помощью дополнительного софта.
P. S. Нашей СБ важны другие вещи ;)
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
КС1 и КС2 будут разными, так как во времясборки в PE заголовок exe'шников и dll записывается время сборки и контрольная сумма. Остальные байты exe'шника по идее должны быть одинаковы, исходники-то ведь не поменялись, правильно? А вот и неправильно! Как я понял, компилятор, например, в случае использования конструкции switch со стринговыми case'ами создает внутренний словарь(PrivateImplementationDetails) соответствия стринга ключу типа int, и присваивает этому словарю рандомный GUID при каждой пересборке.
Так вот вопрос-то в следующем: как скомпилить .Net приложение, чтобы контрольная сумма исполняемой части(отбросим PE-header) не менялась при перекомпиляции из одних исходников?