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

C# 是否可以使用.NET二进制文件的哈希来检查底层源代码是否已更改,c#,.net,sha1,C#,.net,Sha1,我们有几个VS 2008解决方案,总共有近90个DLL+EXE。它们都使用.NET3.5 我想将解决方案和项目转换为VS 2010(还没有为2012年的飞跃做好准备),但保持相同的框架版本 如果我生成一个使用VS 2008编译的dll的散列,而另一个使用VS 2010生成的dll的散列会匹配吗 是否有我会得到假阴性的情况?换句话说,即使底层源代码没有更改,散列也会不匹配吗 找不到任何权威的参考资料来帮助我解决这个问题 不,事实上,它们不会,只是一个接一个地编译dll两次,就会产生不同的散列。有些

我们有几个VS 2008解决方案,总共有近90个DLL+EXE。它们都使用.NET3.5

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

如果我生成一个使用VS 2008编译的dll的散列,而另一个使用VS 2010生成的dll的散列会匹配吗

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


找不到任何权威的参考资料来帮助我解决这个问题

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

但是,还有很多选择,请查看其他问题的链接,这些问题在此处作为对您的问题的评论发布

此链接提供了不同原因和内容的详细信息。

此链接对解决基本需求的替代方法提出了一些建议。

可能重复的请参见另请参见为什么需要计算或比较DLL哈希,以便将项目从VS2008迁移到VS2010?否。这是出于设计考虑。看到这个了吗