调试 DLL 项目的一种方法是在 DLL 项目属性中指定调用应用。 此方法允许你从 DLL 项目本身开始调试。 若要使此方法正常工作,应用必须在配置时所在的同一位置调用同一 DLL。 如果应用程序找到并加载了不同版本的 DLL,该版本将不包含您的断点。 有关调试 DLL 的其他方法,请参阅 调试 DLL 项目。
如果托管应用调用本机 DLL,或本机应用调用托管 DLL,则可以同时调试 DLL 和调用应用。 有关详细信息,请参阅 如何:在混合模式下调试。
本机和托管 DLL 项目具有不同的设置来指定调用应用。
在本机 DLL 项目中指定调用应用
在 解决方案资源管理器中,右键单击C++ DLL 项目并选择 “属性 ”(Alt+Enter)。
在 <“项目> 属性页 ”对话框中,将顶部的 “配置 ”字段设置为 “调试”。
选择 配置属性>调试。
展开 调试器以启动 列表,然后选择 “本地 Windows 调试器 ”或 “远程 Windows 调试器”。
在 “命令 ”或 “远程命令 ”框中,添加调用应用的完全限定路径和文件名,例如 .exe 文件。
将任何必要的程序参数添加到 “命令参数 ”框。
选择“确定”。
在托管 DLL 项目中指定调用应用(.NET Core、.NET 5+)
在 解决方案资源管理器中,右键单击 C# 或 Visual Basic DLL 项目,然后选择 “属性 ”(Alt+Enter)。
在“调试”选项卡中,选择打开调试启动配置文件用户界面。
在 “启动配置文件 ”对话框中,选择“ 创建新配置文件 ”图标,然后选择“ 可执行文件”。
在新配置文件的 “可执行文件”下,浏览到可执行文件的位置(.exe 文件),然后选择它。
在 “启动配置文件 ”对话框中,记下默认配置文件的名称,然后选择配置文件并将其删除。
将新配置文件重命名为与默认配置文件相同的名称。
另一种方法是手动编辑 launchSettings.json 文件。 希望 launchSettings.json 文件中的第一个配置文件与类库的名称匹配,并且希望该配置文件在文件中作为第一个列出。
在托管 DLL 项目中指定调用应用 (.NET Framework)
在 解决方案资源管理器中,右键单击 C# 或 Visual Basic DLL 项目,然后选择 “属性 ”(Alt+Enter)。
将顶部的 “配置” 字段设置为 “调试”。
在启动操作下:
对于 .NET Framework DLL,请选择 “启动外部程序”,并添加调用应用的完全限定路径和名称。
或者,选择 使用 URL 启动浏览器,并输入本地 ASP.NET 应用的 URL。
- 对于 Visual Basic 中的 .NET Core DLL, “调试 属性”页不同。 展开 “启动 ”下拉列表并选择 “可执行文件”,然后在 “可执行文件 ”字段中添加调用应用的完全限定路径和名称。
- 对于 .NET Core DLL, “调试 属性”页不同。 展开 “启动 ”下拉列表并选择 “可执行文件”,然后在 “可执行文件 ”字段中添加调用应用的完全限定路径和名称。
在 命令行参数 或 应用程序参数 字段中添加任何必需的命令行参数。
若要保存更改,请选择“ 文件>保存所选项目 ”(Ctrl+S)。
从 DLL 项目调试
在 DLL 项目中设置断点。
右键单击 DLL 项目,然后选择“ 设置为启动项目”。
将顶部 的解决方案配置 字段设置为 “调试”。 选择 F5 ,然后选择绿色 的“开始” 箭头,或选择“ 调试>开始调试”。
小窍门
如果调试未命中断点,请确保 DLL 输出(默认情况为 <project>\Debug 文件夹)是调用应用进行调用的位置。
如果要从本机 DLL 中断托管调用应用中的代码,或进行相反的转换,请启用混合模式调试。
在某些情况下,可能需要指示调试器在何处查找源代码。 有关详细信息,请参阅 “无符号加载/无源加载”页。