Подтвердить что ты не робот

Точка останова, помещенная в декомпилированную сборку из .Net Reflector, никогда не попадает во время отладки в Visual Studio

Сначала я создал тестовую сборку HelloWorld.dll, которую я хочу отлаживать и строить с конфигурацией выпуска.

namespace HelloWorld
{
    public class HelloClass
    {
        public string SayHello(string name)
        {
            return "Hi " + name + "!";
        }
    }
}

Затем я создал стандартный проект ASP.NET MVC и:

  • Ссылка HelloWorld.dll
  • Модифицированный метод HomeController About

    public ActionResult About()
    {
        var testingClass = new HelloClass();
        ViewBag.Message = testingClass.SayHello("John");
        return View();
    }
    
  • Через .NET Reflector Object Browser декомпилируется сборка HelloWorld

  • Поместить точку останова в метод SayHello (в декомпилированном файле)
  • Запустите debug в IIS express или IIS и запросите ~/Home/About страницу

Результат: Brekpoint никогда не попадает.

Когда я перехожу к Debug -> Windows -> Modules, кажется, что символы для сборки HelloWorld.dll были загружены: введите описание изображения здесь

Итак, что я делаю неправильно?

EDIT: я использую Visual Studio 2015 Update 1 и RedGate Reflector 8.5

4b9b3361

Ответ 1

После нескольких часов и часов исследований и обращения в службу поддержки RedGate, похоже, это ошибка в их программном обеспечении.

Обходные:

  • Используйте Visual Studio 2013, где он работает как ожидалось
  • В VS 2015 перейдите к .NET Reflector -> Generate PDBs и выберите C# version в v4.5. Рефлектор имеет некоторые проблемы с C# version v4.6 Выбрать сборки для отладки