0

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

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

重新编译程序集会解决这个问题吗?这个问题有多严重?

谢谢

4

1 回答 1

2

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

更好的启发式方法是利用 PDB 文件中包含的源文件校验和。通过使用此校验和,NDepend 可以查看源文件内容是否已更改。这就是 VS 在调试时的工作方式。我们(NDepend 团队)没有实现这种启发式方法,因为它可能成本高昂,并且基于 LastWriteTime 的简单启发式方法足以满足大多数实际情况。

帕特里克 - NDepend 团队

于 2011-02-22T14:34:53.170 回答