Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我可以强制构建在不同的计算机上生成相同的文件哈希吗?_C#_.net_Visual Studio 2012 - Fatal编程技术网

C# 我可以强制构建在不同的计算机上生成相同的文件哈希吗?

C# 我可以强制构建在不同的计算机上生成相同的文件哈希吗?,c#,.net,visual-studio-2012,C#,.net,Visual Studio 2012,我目前正在为我的应用程序编写一个自动更新程序/补丁程序 我遇到的问题是,尽管我的计算机和构建服务器上的项目文件和解决方案是相同的,但生成的二进制文件会产生不同的哈希值。这使得测试变得更加困难,而且由于我的应用程序应该是对开发过程的补充,所以我需要确保文件是相同的 下图显示了构建服务器的dll和我的dll之间的差异 这有什么办法吗 或者,我可以在构建过程中以某种方式存储存储库修订号,但这会产生它自己的问题集。可能重复有趣的内容,但我觉得顶级评论员给出的理由是错误的。C#编译器不会在每次编译中嵌入

我目前正在为我的应用程序编写一个自动更新程序/补丁程序

我遇到的问题是,尽管我的计算机和构建服务器上的项目文件和解决方案是相同的,但生成的二进制文件会产生不同的哈希值。这使得测试变得更加困难,而且由于我的应用程序应该是对开发过程的补充,所以我需要确保文件是相同的

下图显示了构建服务器的dll和我的dll之间的差异

这有什么办法吗


或者,我可以在构建过程中以某种方式存储存储库修订号,但这会产生它自己的问题集。

可能重复有趣的内容,但我觉得顶级评论员给出的理由是错误的。C#编译器不会在每次编译中嵌入新生成的GUID。我通过多次清理和重建项目来测试这一点,每次我都得到一个相同的散列。然而,你永远不能依赖C#编译器来提供二进制等价性。任何结果相等的实例都只是巧合。我同意,这不是我测试的依据。但为什么它们必须有相同的散列呢?散列似乎是解决这个问题的错误方法。