PDB文件和源不同步

时间:2011-02-20 02:04:39

标签: .net debugging pdb-files ndepend

我正在尝试使用NDepend来分析一些程序集,但它抱怨pdb文件和源文件彼此不同步。但是,程序集的开发和编译发生在与我运行NDepend的服务器相同的服务器上。

我该如何解决这个问题?我看过很多人都有这个问题,谷歌搜索,但没有真正的解决方案。此外,我将从开发服务器在另一台服务器(自动构建服务器)上运行NDepend,因此将来我可能会再遇到同样的问题。查看NDepend的文档,存储源的路径必须始终相同(但我从未违反此规则)。

重新编译程序集会修复此问题吗?这个问题有多严重?

由于

1 个答案:

答案 0 :(得分:1)

NDepend在检测到PDB file引用的源文件比PDB文件具有更新的LastWriteTime时,会发出'PDB文件并且源不同步'。因此,如果您的构建过程以某种方式在编译之后以及在NDepend分析之前更新源文件的LastWriteTime,这可能是一个错误警报,尽管在编译之后更改源文件的LastWriteTime听起来很尴尬。

更好的启发式方法可能是利用PDB文件中包含的源文件校验和。通过使用此校验和,NDepend可以查看源文件内容是否已更改。这就是VS在调试时的工作方式。我们(NDepend团队)没有实现这种启发式算法,因为它可能代价高昂,而基于LastWriteTime的简单启发式算法对于大多数真实案例来说都足够了。

帕特里克 - NDepend团队