c# – 如何检查装配是否已更改

c# – 如何检查装配是否已更改,第1张

概述是否可以判断一个组件是否已经改变? 我有一个标准项目,生成一个名为MyAssembly.dll的程序集. 在一个单独的项目中,我读取程序集并生成哈希. 当我为程序集生成哈希时,每次重新编译时它都是不同的.我已将程序集版本设置为静态,是否还需要更改其他任何属性? class Program{ static void Main(string[] args) { var @H_403_1@ 是否可以判断一个组件是否已经改变?

我有一个标准项目,生成一个名为MyAssembly.dll的程序集.

在一个单独的项目中,我读取程序集并生成哈希.

当我为程序集生成哈希时,每次重新编译时它都是不同的.我已将程序集版本设置为静态,是否还需要更改其他任何属性?

class Program{    static voID Main(string[] args)    {        var array = file.ReadAllBytes(@"MyAssembly.dll");        SHA256Managed algo = new SHA256Managed();        var hash = algo.ComputeHash(array);        Console.Writeline(Convert.ToBase64String(hash));    }}

谢谢

罗汉

解决方法 您可能需要使用版本号属性.哈希不起作用,因为无论何时重新编译程序集,它都会有所不同 – 即使代码根本没有改变.原因是每次编译时,编译器都会在程序集中嵌入一个guID,并将相同的guID放入相应的.pdb文件中.每次编译程序集时,guID都会改变.

这是调试器将程序集与其.pdb文件的正确版本匹配的原因(这也是为什么你必须始终将.pdb保存在你发布的任何内容上的原因,并且你不能依赖于能够生成一个pdb来匹配现有的程序集)

总结

以上是内存溢出为你收集整理的c# – 如何检查装配是否已更改全部内容,希望文章能够帮你解决c# – 如何检查装配是否已更改所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1215443.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存