在Visual Studio中进行调试时,从来没有点击.Net Reflector中的反编译程序集中的断点

Lad*_*gai 13 iis debugging decompiling visual-studio .net-reflector

首先,我创建了一个测试程序集HelloWorld.dll,我想调试它并使用发布配置构建它.

namespace HelloWorld
{
    public class HelloClass
    {
        public string SayHello(string name)
        {
            return "Hi " + name + "!";
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我创建了标准的ASP.NET MVC项目并:

  • 参考HelloWorld.dll装配
  • 修改了HomeController的About方法

    public ActionResult About()
    {
        var testingClass = new HelloClass();
        ViewBag.Message = testingClass.SayHello("John");
        return View();
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • 通过.NET Reflector对象浏览器反编译HelloWorld程序集

  • 将断点放在SayHello方法中(在反编译文件中)
  • 在IIS express或IIS和请求~/Home/About页面中运行调试

结果:Brekpoint从未被击中.

当我去Debug -> Windows -> Modules它时似乎HelloWorld.dll加载了汇编的符号: 在此输入图像描述

那么,我做错了什么?

编辑:我正在使用Visual Studio 2015 Update 1和RedGate Reflector 8.5

Lad*_*gai 3

经过数小时的研究并联系 RedGate 支持人员后,这似乎是他们软件中的一个错误。

解决方法:

  1. 使用 Visual Studio 2013,它按预期工作
  2. 在 VS 2015 中,转到.NET Reflector -> Generate PDBsC# version选择v4.5. 反光镜有一些问题C# version v4.6 选择要调试的程序集