可以使用.NET二进制的哈希来检查底层源代码是否已更改

时间:2013-11-03 03:26:37

标签: c# .net sha1

我们有几个VS 2008解决方案,总共接近90个dll + exes。他们都使用.NET 3.5。

我想转换解决方案&项目到VS 2010(还没有为2012年的飞跃做好准备),但保持相同的框架版本。

如果我生成使用VS 2008编译的dll的哈希值,并且使用VS 2010生成的dll的另一个哈希值会使哈希值匹配吗?

有没有我会得到假阴性的情况?换句话说,即使底层源代码没有改变,散列也不会匹配吗?

无法找到任何可以帮我解决这个问题的权威参考资料。

1 个答案:

答案 0 :(得分:2)

实际上,不是他们不会只是一个接一个地编译一个dll会有一个不同的哈希值。有一些信息会导致哈希值在每次编译时都会发生变化。

但是有很多选择,请参阅其他问题的链接,这些问题是作为评论发布的。

此链接提供了为什么&有什么不同吗。 http://blogs.msdn.com/b/ericlippert/archive/2012/05/31/past-performance-is-no-guarantee-of-future-results.aspx

此链接提供了一些解决基本要求的替代方法的建议。 Compare compiled .NET assemblies?

相关问题