将调试器附加到手动启动的 IISExpress 实例时没有符号
No symbols when attaching debugger to manually launched IISExpress instance
我有一个场景,我想通过命令行通过 IISExpress 启动本地托管服务,然后使用 Visual Studio 对其进行调试。但是,当我将调试器附加到 IISExpress 进程时,问题就来了,因为它似乎没有从我的服务组件中加载符号。
服务正常运行。我添加了一些痕迹来验证我的本地组件是否被服务运行。我就是打不到断点。
关于我的情况的一些信息:
- 这是 Visual Studio 2015 年的。
- 我正在使用 IISExpress.exe 中的 /path 选项,以可能的最低配置启动。
- 这是一个 ASP.NET Web Api 应用程序。
- 有时,当调试器附加时,它会显示底层依赖项(我的程序集),但我无法从它们加载符号,因为 VS 无法识别我在光盘上为它们准备的 .pdb。
- 我为我的服务和 Visual Studio 设置的服务找到了 application.config 文件。这些文件的配置不同,但它们似乎没有明显的不同。
- 该服务的大部分组件都是发布版本,并且在没有符号的情况下进行部署。一个程序集是调试版本并且确实包含符号。
- 编译标签的调试属性似乎对我的调试能力没有影响。
这里的想法是能够使用测试工具从我们的构建管道中提取构建并从本地开发项目加载组件。
我仔细查看“调试”->“进程”面板后发现了这个问题。事实证明,当 IISExpress 最初启动时,它默认选择本机调试器而不是托管(4.6、4.5、4.0)调试器。
我安装并使用 EnvDTE80 来选择我想附加的调试引擎,一切都很顺利!
我有一个场景,我想通过命令行通过 IISExpress 启动本地托管服务,然后使用 Visual Studio 对其进行调试。但是,当我将调试器附加到 IISExpress 进程时,问题就来了,因为它似乎没有从我的服务组件中加载符号。
服务正常运行。我添加了一些痕迹来验证我的本地组件是否被服务运行。我就是打不到断点。
关于我的情况的一些信息:
- 这是 Visual Studio 2015 年的。
- 我正在使用 IISExpress.exe 中的 /path 选项,以可能的最低配置启动。
- 这是一个 ASP.NET Web Api 应用程序。
- 有时,当调试器附加时,它会显示底层依赖项(我的程序集),但我无法从它们加载符号,因为 VS 无法识别我在光盘上为它们准备的 .pdb。
- 我为我的服务和 Visual Studio 设置的服务找到了 application.config 文件。这些文件的配置不同,但它们似乎没有明显的不同。
- 该服务的大部分组件都是发布版本,并且在没有符号的情况下进行部署。一个程序集是调试版本并且确实包含符号。
- 编译标签的调试属性似乎对我的调试能力没有影响。
这里的想法是能够使用测试工具从我们的构建管道中提取构建并从本地开发项目加载组件。
我仔细查看“调试”->“进程”面板后发现了这个问题。事实证明,当 IISExpress 最初启动时,它默认选择本机调试器而不是托管(4.6、4.5、4.0)调试器。
我安装并使用 EnvDTE80 来选择我想附加的调试引擎,一切都很顺利!