为什么一个可移植的可执行文件在清理和重build之后会发生变化(忽略时间戳)

在clean和rebuild之前和之后,我花了一些时间比较一个可执行文件的hex比较,而且似乎有一些部分总是在变化,不pipe怎样。

我知道.NET注入了一些元数据,编译器插入了时间戳。 我们的内部哈希工具忽略了这些变化,但在可执行文件的其他部分失败。

我不认为那些不断改变我们的代码段。

您在注释中指出的16个不同的字节是一个UUID。 在GUID的第7和第8个字节中有一些“变体”和“版本”位,可以用来识别它们( 参见RFC 4122 )。