Перевірте файл конфігурації запуску
- 11 хвилин
Ви вже бачили, що код Visual Studio використовує файл launch.json для настроювання налагоджувача. Якщо ви створюєте простий консольний застосунок C#, цілком імовірно, що visual Studio Code створить файл launch.json, який містить усі відомості, необхідні для успішного налагодження коду. Проте іноді потрібно змінити конфігурацію запуску, тому важливо розуміти атрибути конфігурації запуску.
Атрибути конфігурації запуску
Файл launch.json містить одну або кілька конфігурацій запуску в configurations списку. У конфігураціях запуску використовуються атрибути для підтримки різних сценаріїв налагодження. Для кожної конфігурації запуску обов'язкові такі атрибути:
-
name: зрозуміле для читача ім'я, призначене конфігурації запуску. -
type: тип налагоджувача, який слід використовувати для конфігурації запуску. -
request: тип запиту конфігурації запуску.
Цей розділ визначає деякі атрибути, які можуть виникнути.
Ім'я
Атрибут name визначає коротке ім'я конфігурації запуску. Значення, призначене name , відображається в розкривному списку конфігурації запуску (на панелі керування у верхній частині подання RUN AND DEBUG).
Тип
Атрибут type визначає тип налагоджувача, який слід використовувати для конфігурації запуску. Значення вказує codeclr тип відлагоджувача для .NET 5+ додатків (включаючи C#-програми).
Просити
Атрибут request визначає тип запиту для конфігурації запуску. Наразі значення launch та attach підтримуються.
Попереднє завдання
Атрибут preLaunchTask указує завдання, яке слід виконати перед налагодження програми. Саме завдання можна знайти у файлі tasks.json, розташованому в папці .vscode разом із файлом launch.json. Укажіть попереднє завдання build запуску команди перед запуском dotnet build програми.
Програма
Атрибут program встановлюється на шлях до виконуваного файла dll або .NET хоста для запуску.
Ця властивість зазвичай приймає форму: ${workspaceFolder}/bin/Debug/<target-framework>/<project-name.dll>.
Де:
-
<target-framework>– це інфраструктура, для яких будується проект налагодження. Це значення зазвичай зустрічається у файлі проекту як властивість "TargetFramework". -
<project-name.dll>– це ім'я dll виводу збірки налагодженого проекту. Ця властивість зазвичай збігається з іменем файлу проекту, але з розширенням ".dll".
Наприклад: ${workspaceFolder}/bin/Debug/net10.0/Debug101.dll
Примітка
Розширення .dll вказує на те, що цей файл є файлом бібліотеки динамічного посилання (DLL). Якщо проект називається Debug101, файл з іменем Debug101.dll створюється, коли завдання збірки компілює програму за допомогою файлів Program.cs та Debug101.csproj. Ви можете знайти Debug101.dll файл у перегляді EXPLORER, розгорнувши папки "bin" і "Debug", а потім відкривши папку, яка представляє .NET фреймворк, який використовується у вашому проєкті коду, наприклад "net10.0". У файлі CSPROJ вказано версію .NET Framework.
Cwd (Cwd)
Атрибут cwd визначає робочий каталог цільового процесу.
Args (Аргс)
Атрибут args визначає аргументи, які передаються програмі під час запуску. Аргументи за замовчуванням відсутні.
Консоль
Атрибут console визначає тип консолі, яка використовується під час запуску програми. Параметри: internalConsole, integratedTerminalі externalTerminal. Стандартне значення: internalConsole. Типи консолей визначаються як:
- Цей
internalConsoleпараметр відповідає панелі DEBUG CONSOLE в області Панелі під редактором коду Visual Studio. - Цей
integratedTerminalпараметр відповідає панелі OUTPUT в області Панелі під редактором коду Visual Studio. - Цей
externalTerminalпараметр відповідає зовнішньому вікні термінала. Приклад вікна терміналу – програма командного рядка, яка постачається з Windows.
Важливий
Панель DEBUG CONSOLE не підтримує ввід консолі. Наприклад, КОНСОЛЬ НАЛАГОДЖЕННЯ не можна використовувати, якщо програма містить Console.ReadLine() оператор. Коли ви працюєте над програмою консолі C#, яка читає введені користувачем дані, console потрібно встановити integratedTerminal значення або externalTerminal. Консольні програми, які пишуть на консоль, але не читають ввід із консолі, можуть використовувати будь-які з трьох console настройок.
Зупинити на вході
Якщо потрібно зупинитися в точці входу цільового об'єкта, за потреби можна встановити значення stopAtEntrytrue.
Редагування конфігурації запуску
Існує багато сценаріїв, коли може знадобитися настроїти файл конфігурації запуску. Багато з цих сценаріїв передбачають розширені або складні сценарії проекту. Цей модуль зосереджується на двох простих сценаріях, коли потрібно оновити файл конфігурації запуску:
- Програма консолі C# читає вхідні дані з консолі.
- Робоча область проекту містить кілька програм.
Оновлення конфігурації запуску для розміщення вводу консолі
Як ви читаєте вище, панель DEBUG CONSOLE не підтримує ввід консолі. Якщо ви налагодите консольну програму, яка використовує введені користувачем дані, потрібно оновити console атрибут у зв'язаній конфігурації запуску.
Щоб змінити атрибут, виконайте console наведені нижче дії.
Відкрийте файл launch.json у редакторі коду Visual Studio.
Знайдіть атрибут консолі .
Виберіть двокрапку та призначене значення, а потім введіть символ двокрапки.
Зверніть увагу, що під час перезаписування наявних відомостей двокрапкою, Visual Studio Code IntelliSense відображає три параметри в розкривному списку.
Виберіть integratedTerminal або externalTerminal.
Збережіть файл launch.json.
Оновлення конфігурації запуску для розміщення кількох програм
Якщо робоча область має лише один проект, який можна запустити, розширення C# автоматично створить файл launch.json. Якщо у вас кілька проектів, доступних для запуску, потрібно вручну змінити файл launch.json. Код Visual Studio створює файл launch.json за допомогою базового шаблону, який можна оновити. У цьому сценарії створюються окремі конфігурації для кожного застосунку, який потрібно налагодити. Попереднє завдання, наприклад завдання збірки, можна створити у файлі tasks.json.
Припустімо, що ви працюєте над проектом кодування, який містить кілька консольних програм. Коренева папка проекту SpecialProjects – це папка робочої області, відкрита в коді Visual Studio під час роботи з кодом. У вас є дві програми, які ви розробляєте, Project123 і Project456. Ви використовуєте подання RUN AND DEBUG для налагодження програм. Потрібно вибрати програму, яку ви налагодите, з інтерфейсу користувача. Ви також хочете, щоб усі збережені оновлення коду були скомпільовані перед вкладенням налагоджувача до програми.
Вимоги для цього сценарію можна досягти, оновивши launch.json та tasks.json файли.
На знімку екрана нижче показано подання EXPLORER і структуру папок, що містять Project123 і Project456.
Зверніть увагу, що папка .vscode , яка містить launch.json та tasks.json файли, пов'язана з папкою робочої області , specialProjects, а не з окремими папками проекту.
У наведеному нижче прикладі показано, як можна настроїти файл launch.json, щоб включити конфігурації для програм "Project123" і "Project456".
"version": "0.2.0",
"configurations": [
{
"name": "Launch Project123",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "buildProject123",
"program": "${workspaceFolder}/Project123/bin/Debug/net10.0/Project123.dll",
"args": [],
"cwd": "${workspaceFolder}/Project123",
"console": "internalConsole",
"stopAtEntry": false
},
{
"name": "Launch Project456",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "buildProject456",
"program": "${workspaceFolder}/Project456/bin/Debug/net10.0/Project456.dll",
"args": [],
"cwd": "${workspaceFolder}/Project456",
"console": "internalConsole",
"stopAtEntry": false
}
]
Зверніть увагу, що всі поля імені, preLaunchTask і program настроєно для певної програми.
Атрибут name визначає вибраний параметр запуску, який відображається в інтерфейсі користувача подання RUN AND DEBUG, атрибут програми визначає шлях до програми. Атрибут preLaunchTask використовується для визначення імені завдання, яке виконувалося перед запуском налагоджувача. Файл tasks.json містить іменовані завдання та відомості, необхідні для виконання завдання.
У наведеному нижче прикладі показано, як можна настроїти файл tasks.json. У цьому випадку іменовані завдання визначають операції збірки, характерні для програм "Project123" і "Project456". Завдання збірки гарантує, що всі збережені зміни скомпільовано та представлено у відповідному файлі .dll, вкладеному в налагоджувач.
"version": "2.0.0",
"tasks": [
{
"label": "buildProject123",
"command": "dotnet",
"type": "process",
"args": [
"build",
"${workspaceFolder}/Project123/Project123.csproj",
"/property:GenerateFullPaths=true",
"/consoleloggerparameters:NoSummary"
],
"problemMatcher": "$msCompile"
},
{
"label": "buildProject456",
"command": "dotnet",
"type": "process",
"args": [
"build",
"${workspaceFolder}/Project456/Project456.csproj",
"/property:GenerateFullPaths=true",
"/consoleloggerparameters:NoSummary"
],
"problemMatcher": "$msCompile"
}
]
Якщо оновлення launch.json та tasks.json файли на місці, у поданні RUN AND DEBUG відображаються параметри запуску для налагодження програми Project123 або Project456. На знімку екрана нижче показано імена конфігурацій запуску, які відображаються в розкривному списку конфігурації запуску:
Повторити введення
Ось дві важливі речі, які слід пам'ятати з цієї одиниці:
- Конфігурації запуску використовуються для визначення таких атрибутів, як
name, ,typerequest,preLaunchTask,program, іconsole. - Розробники можуть редагувати конфігурацію запуску відповідно до вимог проекту.
Перевірте свої знання
Зворотний зв’язок
Чи була ця сторінка корисна?
Ні
Потрібна допомога із цією темою?
Хочете скористатися Ask Learn, щоб отримати пояснення чи інструкції із цієї теми?