我们有几个 VS 2008 解决方案,总共有近 90 个 dll + exe。他们都使用 .NET 3.5。
我想将解决方案和项目转换为 VS 2010(尚未准备好跨越到 2012 年),但保持相同的框架版本。
如果我生成使用 VS 2008 编译的 dll 的哈希值,而使用 VS 2010 生成的 dll 的另一个哈希值是否会匹配?
在某些情况下我会得到假阴性结果吗?换句话说,即使底层源代码没有改变,哈希值也会不匹配吗?
找不到任何权威引用资料可以帮助我解决这个问题。
最佳答案
不,事实上,仅仅连续编译一个 dll 两次就会产生不同的哈希值。有一些信息会导致哈希值在每次编译时发生变化。
但是,还有很多替代方案,请参阅作为对您的问题的评论发布的其他问题的链接。
此链接提供了差异原因和差异的详细信息。 http://blogs.msdn.com/b/ericlippert/archive/2012/05/31/past-performance-is-no-guarantee-of-future-results.aspx
此链接提供了一些关于解决基本需求的替代方法的建议。 Compare compiled .NET assemblies?
关于c# - .NET 二进制文件的哈希值可以用于检查底层源代码是否已更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19749539/