Отладка из проекта DLL в Visual Studio (C#, C++, Visual Basic, F#)
Одним из способов отладки проекта библиотеки DLL является указание вызывающего приложения в свойствах проекта библиотеки DLL. Затем можно запускать отладку из самого проекта DLL. Чтобы этот метод работал, приложение должно вызвать одну и ту же библиотеку DLL в том расположении, которое вы настроили. Если приложение находит и загружает другую версию библиотеки DLL, эта версия не будет содержать точки останова. Другие методы отладки библиотек DLL см. в разделе Отладка проектов DLL.
Если управляемое приложение вызывает собственную библиотеку DLL или ваше собственное приложение вызывает управляемую библиотеку DLL, можно выполнить отладку библиотеки DLL и вызывающего приложения. Дополнительные сведения см. в разделе Практическое руководство. Отладка в смешанном режиме.
Собственные и управляемые DLL-проекты имеют разные параметры для указания вызывающих приложений.
Указание вызывающего приложения в собственном проекте DLL
Выберите проект C++ DLL в обозревателе решений. Щелкните значок Свойства, нажмите сочетание клавиш ALT+ВВОД или щелкните проект правой кнопкой мыши и выберите элемент Свойства.
В диалоговом окне Страницы свойств <проект> убедитесь, что в поле Настройка в верхней части окна задано значение Отладка.
Выберите Свойства конфигурации>Отладка.
В списке Запускаемый отладчик выберите Локальный отладчик Windows или Удаленный отладчик Windows.
В поле Команда или Удаленная команда добавьте полный путь и имя файла вызывающего приложения, например EXE-файл.
Добавьте необходимые аргументы программы в поле Аргументы команды.
Нажмите ОК.
Указание вызывающего приложения в проекте C# или DLL (.NET Core, .NET 5+)
Выберите проект C# или Visual Basic DLL в обозревателе решений. Щелкните значок Свойства, нажмите сочетание клавиш ALT+ВВОД или щелкните проект правой кнопкой мыши и выберите элемент Свойства.
Откройте вкладку "Отладка" и выберите пункт Открыть пользовательский интерфейс профилей запуска отладки.
В диалоговом окне "Профили запуска" щелкните значок Создать новый профиль и выберите Исполняемый файл.
В новом профиле в разделе Исполняемый файл перейдите к расположению исполняемого файла (.exe) и выберите его.
В диалоговом окне "Профили запуска" найдите и запишите имя профиля по умолчанию, а затем выберите его и удалите.
Присвойте новому профилю имя профиля по умолчанию.
Чтобы получить такой же результат, можно также вручную изменить файл launchSettings.json. Необходимо, чтобы первый профиль в файле launchSettings.json соответствовал имени библиотеки классов и он был первым указан в файле.
Указание вызывающего приложения в управляемом проекте DLL
Выберите проект C# или Visual Basic DLL в обозревателе решений. Щелкните значок Свойства, нажмите сочетание клавиш ALT+ВВОД или щелкните проект правой кнопкой мыши и выберите элемент Свойства.
Убедитесь, что в поле Настройка в верхней части окна задано значение Отладка.
В разделе Запустить действие
Для библиотек DLL .NET Framework выберите Запустить внешнюю программу и добавьте полный путь и имя вызывающего приложения.
Или выберите Запустить браузер с URL-адресом и введите URL-адрес локального приложения ASP.NET.
- У библиотек DLL .NET Core для Visual Basic страница свойств Отладка отличается. Выберите Исполняемый файл из раскрывающегося списка Запуск, а затем добавьте полный путь и имя вызывающего приложения в поле Исполняемый файл.
- Для библиотек DLL .NET Core страница свойств Отладка отличается. Выберите Исполняемый файл из раскрывающегося списка Запуск, а затем добавьте полный путь и имя вызывающего приложения в поле Исполняемый файл.
Добавьте необходимые аргументы командной строки в поле Аргументы командной строки или Аргументы приложения.
Используйте Файл>Сохранить выбранные элементы или CTRL+S, чтобы сохранить изменения.
Отладка из проекта DLL
Задайте точки останова в проекте DLL.
Щелкните проект DLL правой кнопкой мыши и выберите Назначить запускаемым проектом.
Убедитесь, что в поле Конфигурация решений установлено значение Отладка. Нажмите клавишу F5, щелкните зеленую стрелку Запуск или выберите Отладка>Начать отладку.
Дополнительные советы:
Если отладка не достигает точек останова, убедитесь, что выходные данные библиотеки DLL (по умолчанию — папка <проект>\Debug) — это расположение, которое вызывает вызывающее приложение.
Если вы хотите прервать выполнение кода в управляемом вызывающем приложении из собственной библиотеки DLL или наоборот, включите отладку в смешанном режиме.
В некоторых сценариях может потребоваться сообщить отладчику, где найти исходный код. Дополнительные сведения см. в разделе Использование страниц "Символы не загружены" или "Нет исходного кода".