我的C#项目引用了第三方DLL,我有源代码。我可以以某种方式告诉Visual Studio该源代码的位置,例如,当我按 F12 打开DLL中方法的定义时,它将打开源代码,而不是打开“类[来自元数据]”存根代码?
答案 0 :(得分:26)
如果使用ReSharper,可以通过转到ReSharper / Options / External Sources启用它,然后向上移动“来自符号文件的源”。然后在“符号文件来源”选项卡中,单击“高级”,您可以在那里映射源文件夹。
答案 1 :(得分:22)
看起来答案接近this MSDN documentation page的底部。
调试器在以下位置查找源文件:
在启动调试器的Visual Studio实例的IDE中打开的文件。
VS实例中打开的解决方案中的文件。
解决方案属性中“公共属性”/“调试源文件”页面中指定的目录。
- 醇>
模块的.pdb的源信息。这可以是构建模块时源文件的位置,也可以是源服务器的命令。
将目录添加到解决方案的“调试源文件”页面(上面的步骤3):
您可以指定网络或本地目录来搜索来源 文件。
在Solution Explorer中选择解决方案,然后从快捷菜单中选择“Properties”(即右键单击上下文菜单)。
在“公共属性”节点下,选择“调试源文件”。
单击文件夹图标。可编辑文本显示在“包含源代码的目录”列表中。
- 醇>
添加您要搜索的路径。
请注意,仅搜索指定的目录。你必须添加 您要搜索的所有子目录的条目。
因此,如果您只想调试特定文件一次而不会弄乱您的解决方案,那么只需在Visual Studio IDE中打开该文件即可;如果您需要从该文件转到其他文件,您可能还需要在Visual Studio中打开其他文件。
如果您经常发现自己需要在解决方案之外调试源文件,那么您可以:
答案 2 :(得分:9)
您可以这样做的一种方法是在解决方案中创建另一个项目,将DLL源放在那里,然后从主项目中添加依赖项作为项目引用而不是程序集引用。这应该让你在调试时浏览源/步骤等。
可能有一种更简单的方法,但目前我还没有发现任何问题。