c# - 为什么 C# 为相同的源代码生成不同的 EXE?

标签 c# hash compiler-construction binary-reproducibility

每次我们重新编译我们的 C# 应用程序时,我们最终都会得到具有不同 MD5 签名的 EXE。我们在同一台机器上重新编译,相隔几分钟。为什么相同的源代码不会产生相同的输出?有办法解决这个问题吗?

最佳答案

“所以每个程序集都有:

  1. 一个时间戳,在两个位置
  2. 与 PDB 匹配的 GUID
  3. 每次编译都会生成一个看似完全随机的 GUID。
  4. 指示程序集构建的计数器 - 仅在后续的 Visual Studio 构建中生成。”

来自:

http://ritter.vg/#code_adventures_clr1

关于c# - 为什么 C# 为相同的源代码生成不同的 EXE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1335427/

相关文章:

java - 为什么编译器在进行 "bad"转换时不给出错误?

.net - 可以将 ASP.NET 编译为机器代码吗?

c++ - 程序中的编译器信息

c# - System.Web.HttpUtility.UrlDecode 中是否存在错误?

python - 如何跨 SQL Server 和 Postgres 比较两个表列哈希的哈希值?

c# - 拆分字符串并验证每个部分

Perl 哈希值 : how to deal with duplicate keys and get possible pair

具有整数键的 Ruby Hash 更改为字符串键

c# - SocketAsyncEventArgs - 如何检测正在进行的套接字操作并终止?

c# - 可以重载空合并运算符吗?