Точка останова, помещенная в декомпилированную сборку из.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's About метод

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

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

Результат: Брекпойнт никогда не поражен.

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

Итак, что я делаю не так?

РЕДАКТИРОВАТЬ: я использую Visual Studio 2015 Update 1 и RedGate Reflector 8.5

1 ответ

Решение

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

обходные:

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