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