Отладка из проекта DLL в Visual Studio (C#, C++, Visual Basic, F#)

Одним из способов отладки проекта библиотеки DLL является указание вызывающего приложения в свойствах проекта библиотеки DLL. Затем можно запускать отладку из самого проекта DLL. Чтобы этот метод работал, приложение должно вызвать одну и ту же библиотеку DLL в том расположении, которое вы настроили. Если приложение находит и загружает другую версию библиотеки DLL, эта версия не будет содержать точки останова. Другие методы отладки библиотек DLL см. в разделе Отладка проектов DLL.

Если управляемое приложение вызывает собственную библиотеку DLL или ваше собственное приложение вызывает управляемую библиотеку DLL, можно выполнить отладку библиотеки DLL и вызывающего приложения. Дополнительные сведения см. в разделе Практическое руководство. Отладка в смешанном режиме.

Собственные и управляемые DLL-проекты имеют разные параметры для указания вызывающих приложений.

Указание вызывающего приложения в собственном проекте DLL

  1. Выберите проект C++ DLL в обозревателе решений. Щелкните значок Свойства, нажмите сочетание клавиш ALT+ВВОД или щелкните проект правой кнопкой мыши и выберите элемент Свойства.

  2. В диалоговом окне Страницы свойств <проект> убедитесь, что в поле Настройка в верхней части окна задано значение Отладка.

  3. Выберите Свойства конфигурации>Отладка.

  4. В списке Запускаемый отладчик выберите Локальный отладчик Windows или Удаленный отладчик Windows.

  5. В поле Команда или Удаленная команда добавьте полный путь и имя файла вызывающего приложения, например EXE-файл.

    Debug Properties window

  6. Добавьте необходимые аргументы программы в поле Аргументы команды.

  7. Нажмите ОК.

Указание вызывающего приложения в проекте C# или DLL (.NET Core, .NET 5+)

  1. Выберите проект C# или Visual Basic DLL в обозревателе решений. Щелкните значок Свойства, нажмите сочетание клавиш ALT+ВВОД или щелкните проект правой кнопкой мыши и выберите элемент Свойства.

  2. Откройте вкладку "Отладка" и выберите пункт Открыть пользовательский интерфейс профилей запуска отладки.

  3. В диалоговом окне "Профили запуска" щелкните значок Создать новый профиль и выберите Исполняемый файл.

    Screenshot of the UI to create a new debug profile.

  4. В новом профиле в разделе Исполняемый файл перейдите к расположению исполняемого файла (.exe) и выберите его.

  5. В диалоговом окне "Профили запуска" найдите и запишите имя профиля по умолчанию, а затем выберите его и удалите.

  6. Присвойте новому профилю имя профиля по умолчанию.

    Чтобы получить такой же результат, можно также вручную изменить файл launchSettings.json. Необходимо, чтобы первый профиль в файле launchSettings.json соответствовал имени библиотеки классов и он был первым указан в файле.

Указание вызывающего приложения в управляемом проекте DLL

  1. Выберите проект C# или Visual Basic DLL в обозревателе решений. Щелкните значок Свойства, нажмите сочетание клавиш ALT+ВВОД или щелкните проект правой кнопкой мыши и выберите элемент Свойства.

  2. Убедитесь, что в поле Настройка в верхней части окна задано значение Отладка.

  3. В разделе Запустить действие

    • Для библиотек DLL .NET Framework выберите Запустить внешнюю программу и добавьте полный путь и имя вызывающего приложения.

    • Или выберите Запустить браузер с URL-адресом и введите URL-адрес локального приложения ASP.NET.

    • У библиотек DLL .NET Core для Visual Basic страница свойств Отладка отличается. Выберите Исполняемый файл из раскрывающегося списка Запуск, а затем добавьте полный путь и имя вызывающего приложения в поле Исполняемый файл.
    • Для библиотек DLL .NET Core страница свойств Отладка отличается. Выберите Исполняемый файл из раскрывающегося списка Запуск, а затем добавьте полный путь и имя вызывающего приложения в поле Исполняемый файл.
  4. Добавьте необходимые аргументы командной строки в поле Аргументы командной строки или Аргументы приложения.

    C# Debug Properties window

  5. Используйте Файл>Сохранить выбранные элементы или CTRL+S, чтобы сохранить изменения.

Отладка из проекта DLL

  1. Задайте точки останова в проекте DLL.

  2. Щелкните проект DLL правой кнопкой мыши и выберите Назначить запускаемым проектом.

  3. Убедитесь, что в поле Конфигурация решений установлено значение Отладка. Нажмите клавишу F5, щелкните зеленую стрелку Запуск или выберите Отладка>Начать отладку.

Дополнительные советы:

  • Если отладка не достигает точек останова, убедитесь, что выходные данные библиотеки DLL (по умолчанию — папка <проект>\Debug) — это расположение, которое вызывает вызывающее приложение.

  • Если вы хотите прервать выполнение кода в управляемом вызывающем приложении из собственной библиотеки DLL или наоборот, включите отладку в смешанном режиме.

  • В некоторых сценариях может потребоваться сообщить отладчику, где найти исходный код. Дополнительные сведения см. в разделе Использование страниц "Символы не загружены" или "Нет исходного кода".