有没有办法在Visual Studio 2008下的C#中设置程序数据库文件(* .pdb)的自定义路径?使用C ++这非常简单(项目设置 - >链接器 - >调试 - >生成程序数据库文件),但由于某种原因,Microsoft似乎已删除(或隐藏)它用于C#。
我知道“标准”用法是让pdb位于bin目录旁边的可执行文件中,但是该目录变得非常混乱,所以我真的更喜欢它们位于/ obj中,是我以前在C ++中常常做的事情。
谢谢!
答案 0 :(得分:2)
C#编译器支持/pdb command line option。但是,该选项未在IDE的“构建”选项卡中公开。
IDE构建过程已经要求C#编译器将.pdb文件放在obj \ Debug目录中。它的副本最终在bin \ Debug中由名为CopyFilesToOutputDirectory的MSBuild任务完成。此任务在Microsoft.Common.targets中配置,该文件位于VS2008的c:\ windows \ microsoft.net \ framework \ v3.5目录中。您可以在技术上编辑此文件并删除复制.pdb的<Copy>
元素。注意文件顶部的警告,确保在修改之前制作备份副本。
我认为您遇到的基本问题是这会影响所有项目的所有版本。并且调试器现在不再能够找到.pdb文件。那将是最终的表演者。
答案 1 :(得分:0)
添加postbuild事件并将pdb复制到所需位置)
答案 2 :(得分:0)
.pdb文件必须与.exe和.dll位于同一文件夹中才能加载。
Pdb文件在异常处理时加载,并且需要追溯到发生异常的代码中的确切行。
您可以做的是在构建期间将pdb移动到符号服务器,而不是使用应用程序发布它们。然后在分析异常跟踪时将它们拉入。
查看this post以获取有关pdb文件,符号服务器等的信息。