gpt4 book ai didi

c# - 按位比较 .exe 和 .dll 与包含的 AssemlyInfo.cs

转载 作者:行者123 更新时间:2023-12-02 05:25:23 25 4
gpt4 key购买 nike

背景:

我负责尝试想出一种新方法来比较使用 AssemblyInfo 嵌入版本号的 dll 和 exe。每次我们进行新构建时,版本都会相应增加。然而,当部署新版本时,我们只想复制实际发生变化的 dll 和 exe,但嵌入的版本号使它看起来总是如此。

为了解决这个问题,系统目前只依赖于比较文件大小,但我的任务是注意到这似乎还不够好,因为尽管它发生了变化,但我们未能部署新的 exe;它们恰好具有相同的文件大小。我们不知道这种情况发生的频率,因此我们需要对此采取一些措施,但如果可能的话,我们仍然希望在更换 dll 和 exe 时保持聪明,这样用户就不会每次都被迫关闭 UI我们真的只需要替换 UI 不使用的文件。

因此,我的问题是,是否有一种聪明的方法可以将 exe 和 dll 与使用 AssemblyInfo 的嵌入式版本进行比较,同时忽略该元数据本身。我环顾四周越多,就越觉得这可能是不可能的,但我认为在每次放弃并转而更换所有东西之前值得一问。

感谢您的帮助!

编辑:我想我真正希望的一件事是对某些偏移量进行按位比较。 AssemblyInfo 是否总是在特定点编译,例如在比较中可以考虑的各种页眉或页脚?

最佳答案

Eric Lippert 有 already covered this :

Is compiling the same C# program twice guaranteed to produce the same binary output?
No.
Well, that was an easy blog to write.
...
The C# compiler by design never produces the same binary twice. The C# compiler embeds a freshly generated GUID in every assembly, every time you run it, thereby ensuring that no two assemblies are ever bit-for-bit identical

关于c# - 按位比较 .exe 和 .dll 与包含的 AssemlyInfo.cs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13160184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com