构建后的 FxCop 10.0,VS2010 中的 [Location not stored in Pdb]
Posted
技术标签:
【中文标题】构建后的 FxCop 10.0,VS2010 中的 [Location not stored in Pdb]【英文标题】:FxCop 10.0 in post-build, [Location not stored in Pdb] in VS2010 【发布时间】:2011-11-03 13:20:26 【问题描述】:我正在尝试启动并运行一个构建后事件,它将 FxCop 警告/错误的内容放入错误列表中
这是我的构建后事件命令行:
"$(ProgramFiles)\Microsoft FxCop 10.0\FxCopCmd.exe" /file:"$(TargetPath)" /console
我在这方面取得了成功,但在位置列中,错误只是说[Location not stored in Pdb]
,这不是我要找的。存在相关的 PDB 文件。
我已经实现了here 的步骤,但这是针对以前版本的 FxCop 并没有解决问题。
我正在使用 Visual Studio 2010 Professional。
这是错误列表窗口的示例:
TIA
【问题讨论】:
【参考方案1】:同一文件夹中是否有可用于目标程序集的 PDB 文件?如果没有,您需要生成和/或复制 PDB 文件,以便 FxCp 可以使用。
如果您在正确的位置已经有一个 PDB 文件,则可能只是您遇到了规则违规,而 PDB 文件中合法地没有任何源上下文信息。如果您不确定是否是这种情况,能否提供一个违规示例,说明源上下文信息缺失,即使您认为它应该可用?
【讨论】:
有一个PDB文件在与DLL相同的文件夹中。我会用更多信息更新问题。 PDB 文件仅包含可执行代码的源上下文信息。接口是不可执行的,因此 PDB 文件中没有其成员的源上下文信息,并且您在更新的问题中显示的结果是预期的。 (Visual Studio 代码分析可以公开相同违规的源上下文信息,因为它在其一次性(即:实际源代码)中有额外信息,用于解析 PDB 文件中不包含的目标上下文。)以上是关于构建后的 FxCop 10.0,VS2010 中的 [Location not stored in Pdb]的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法在 FxCop 10.0 中获取 CAT.NET 规则