- Настройка задач сборки и отладки для режима разработки «Открытая папка» Customize build and debug tasks for «Open Folder» development
- Определение задач в файле tasks.vs.json Define tasks with tasks.vs.json
- Определение настраиваемых задач сборки Define custom build tasks
- Определение произвольных задач Define arbitrary tasks
- Область действия параметров Settings scope
- Свойства для tasks.vs.json Properties for tasks.vs.json
- appliesTo appliesTo
- Макросы для tasks.vs.json Macros for tasks.vs.json
- Настройка отладки с помощью launch.vs.json Configure debugging with launch.vs.json
- Указание аргументов для отладки Specify arguments for debugging
- Дополнительные файлы параметров Additional settings files
- .vscode\settings.json .vscode\settings.json
- .gitignore .gitignore
Настройка задач сборки и отладки для режима разработки «Открытая папка» Customize build and debug tasks for «Open Folder» development
Visual Studio поддерживает множество разных языков и баз кода, но не все существующие варианты. Visual Studio knows how to run many different languages and codebases, but it doesn’t know how to run everything. Если вы откроете в Visual Studio папку с кодом, который поддерживает Visual Studio, его можно выполнить немедленно и без дополнительных настроек. If you opened a code folder in Visual Studio, and Visual Studio knows how to run your code, you can run it right away without any additional configuration.
Если в базе кода используются пользовательские средства сборки, которые не распознаются Visual Studio, для выполнения и отладки такого кода в Visual Studio требуются определенные сведения о конфигурации. If the codebase uses custom build tools that Visual Studio doesn’t recognize, you need to provide some configuration details to run and debug the code in Visual Studio. Чтобы указать Visual Studio правила сборки вашего кода, определите задачи сборки. You instruct Visual Studio how to build your code by defining build tasks. Создав одну или несколько задач сборки, вы сможете указать в них все элементы, которые потребуются для сборки и выполнения кода на определенном языке. You can create one or more build tasks to specify all the items a language needs to build and run its code. Кроме того, можно создавать произвольные задачи с практически неограниченными возможностями. You can also create arbitrary tasks that can do nearly anything you want. Например, с помощью задач можно вывести список содержимого папки или переименовать файл. For example, you can create a task to list the contents of a folder or to rename a file.
Чтобы настроить базу кода, не относящуюся к конкретному проекту, воспользуйтесь следующими файлами .json: Customize your project-less codebase by using the following .json files:
Имя файла File name | Цель Purpose |
---|---|
tasks.vs.json tasks.vs.json | Определяет настраиваемые команды сборки и параметры компилятора, а также произвольные (не имеющие отношения к сборке) задачи. Specify custom build commands and compiler switches, and arbitrary (non-build related) tasks. Доступ к файлу можно получить в обозревателе решений, выбрав пункт контекстного меню Настройка задач. Accessed via the Solution Explorer right-click menu item Configure Tasks. |
launch.vs.json launch.vs.json | Определяет аргументы командной строки для отладки. Specify command-line arguments for debugging. Доступ к файлу можно получить в обозревателе решений, выбрав пункт контекстного меню Параметры отладки и запуска. Accessed via the Solution Explorer right-click menu item Debug and Launch Settings. |
Описанные файлы .json находятся в скрытой папке с именем .vs в корневой папке базы кода. These .json files are located in a hidden folder called .vs in the root folder of your codebase. Файлы tasks.vs.json и launch.vs.json создаются в среде Visual Studio по мере необходимости, то есть когда вы выбираете в обозревателе решений действия Настройка задач или Параметры отладки и запуска для файла или папки. The tasks.vs.json and launch.vs.json files are created by Visual Studio on an as-needed basis when you choose either Configure Tasks or Debug and Launch Settings on a file or folder in Solution Explorer. Эти файлы .json скрыты, потому что пользователи обычно не добавляют их в систему управления версиями. These .json files are hidden because users generally don’t want to check them into source control. Чтобы применить для них управление версиями, перетащите файлы в корневой каталог проекта, где они станут видимыми. However, if you want to be able to check them into source control, drag the files into the root of your codebase, where they are visible.
Чтобы просмотреть скрытые папки в Visual Studio, нажмите кнопку Показать все файлы на панели инструментов обозревателя решений. To view hidden files in Visual Studio, choose the Show All Files button on the Solution Explorer toolbar.
Определение задач в файле tasks.vs.json Define tasks with tasks.vs.json
Вы можете автоматизировать скрипты сборки и любые внешние операции с файлами, размещенными в текущей рабочей области, запуская их как задачи в интегрированной среде разработки. You can automate build scripts or any other external operations on the files you have in your current workspace by running them as tasks directly in the IDE. Чтобы настроить новую задачу, щелкните правой кнопкой мыши нужный файл или папку и выберите Настройка задач. You can configure a new task by right-clicking on a file or folder and selecting Configure Tasks.
В среде разработки откроется (или будет создан, если его еще нет) файл tasks.vs.json в папке .vs. This creates (or opens) the tasks.vs.json file in the .vs folder. Можно определить в этом файле задачу сборки или произвольную задачу, а затем вызывать ее по имени в контекстном меню обозревателя решений. You can define a build task or arbitrary task in this file, and then invoke it using the name you gave it from the Solution Explorer right-click menu.
Настраиваемые задачи можно размещать в отдельных файлах или во всех файлах определенного типа. Custom tasks can be added to individual files, or to all files of a specific type. Например, можно определить во всех файлах пакета NuGet задачу «Восстановить пакеты» или поместить во все файлы исходного кода задачу статического анализа, например анализатор кода для всех JS-файлов. For instance, NuGet package files can be configured to have a «Restore Packages» task, or all source files can be configured to have a static analysis task, such as a linter for all .js files.
Определение настраиваемых задач сборки Define custom build tasks
Если в базе кода используются настраиваемые средства сборки, которые не распознаются в Visual Studio, вам не удастся выполнить и отладить код в Visual Studio без нескольких дополнительных настроек. If your codebase uses custom build tools that Visual Studio doesn’t recognize, then you cannot run and debug the code in Visual Studio until you complete some configuration steps. Visual Studio поддерживает задачи сборки, в которых вы можете указать Visual Studio правила сборки, перестроения и очистки кода. Visual Studio provides build tasks where you can tell Visual Studio how to build, rebuild, and clean your code. Файл задачи сборки tasks.vs.json связывает внутренний цикл разработки Visual Studio с пользовательскими средствами сборки, применяемыми для базы кода. The tasks.vs.json build task file couples the Visual Studio inner development loop to the custom build tools used by your codebase.
Давайте рассмотрим пример базы кода, которая состоит из одного файла на языке C# с именем hello.cs. Consider a codebase that consists of a single C# file called hello.cs. Файл makefile для такой базы кода может выглядеть следующим образом: The makefile for such a codebase might look like this:
Этот файл makefile содержит целевые объекты сборки, очистки и перестроения, и вы можете определить для него указанный ниже файл tasks.vs.json. For such a makefile that contains build, clean, and rebuild targets, you can define the following tasks.vs.json file. Он содержит три задачи сборки (для сборки, перестроения и очистки), для которых применяется средство сборки NMAKE. It contains three build tasks for building, rebuilding, and cleaning the codebase, using NMAKE as the build tool.
Когда вы определите в файле tasks.vs.json задачи сборки, в контекстном меню обозревателя решений для соответствующих файлов появятся дополнительные пункты. After you define build tasks in tasks.vs.json, additional right-click menu (context menu) items are added to the corresponding files in Solution Explorer. В нашем примере для всех файлов makefile в контекстное меню добавляются действия «Сборка», «Перестроить» и «Очистить». For this example, «build», «rebuild», and «clean» options are added to the context menu of any makefile files.
Эти команды отображаются в контекстном меню в разделе Настройка задач, как указано для них в параметрах contextType . The commands appear in the context menu under the Configure Tasks command due to their contextType settings. «Сборка», «перестроение» и «очистка» являются командами сборки, поэтому они отображаются в разделе сборки, в центре контекстного меню. «build», «rebuild», and «clean» are build commands, so they appear in the build section in the middle of the context menu.
Если вы выберете любой из этих вариантов, будет выполнена соответствующая задача. When you select one of these options, the task executes. Выходные данные отображаются в окне Вывод, а ошибки сборки — в окне Список ошибок. Output appears in the Output window, and build errors appear in the Error List.
Определение произвольных задач Define arbitrary tasks
Вы можете описать в файле tasks.vs.json произвольную задачу, которая предназначена для выполнения любого действия. You can define arbitrary tasks in the tasks.vs.json file, to do just about anything you want. Например, можно определить задачу для отображения имени файла, выбранного в окне вывода, или списка файлов в указанном каталоге. For example, you can define a task to display the name of the currently selected file in the Output window, or to list the files in a specified directory.
Ниже представлен пример файла tasks.vs.json, который определяет одну задачу. The following example shows a tasks.vs.json file that defines a single task. При вызове этой задачи отображается имя выбранного файла .js. When invoked, the task displays the filename of the currently selected .js file.
- taskName определяет имя, отображаемое в контекстном меню. taskName specifies the name that appears in the right-click menu.
- В appliesTo указывается, для каких файлов можно выполнить эту команду. appliesTo specifies which files the command can be performed on.
- Свойство command определяет вызываемую команду. The command property specifies the command to invoke. В нашем примере в переменной среды COMSPEC задается интерпретатор командной строки, обычно это cmd.exe. In this example, the COMSPEC environment variable is used to identify the command line interpreter, typically cmd.exe.
- В свойстве args задаются аргументы, которые будут переданы вызываемой команде. The args property specifies the arguments to be passed to the invoked command.
- Макрос $
передает выбранный файл в обозреватель решений. The $ macro retrieves the selected file in Solution Explorer.
Сохранив файл tasks.vs.json, вы можете щелкнуть правой кнопкой мыши любой файл .js и выбрать команду Echo filename (Отобразить имя файла). After saving tasks.vs.json, you can right-click on any .js file in the folder and choose Echo filename. Имя файла будет отображено в окне Вывод. The file name is displayed in the Output window.
Если в базе кода нет файлов tasks.vs.json, вы можете создать такой файл с помощью команды Настройка задач в контекстном меню обозревателя решений. Эту команду также можно вызвать, щелкнув файл правой кнопки мыши. If your codebase doesn’t contain a tasks.vs.json file, you can create one by choosing Configure Tasks from the right-click or context menu of a file in Solution Explorer.
В следующем примере определяется задача перечисления всех файлов и вложенных папок из каталога bin. The next example defines a task that lists the files and subfolders of the bin directory.
- Пользовательский макрос $
определяется перед блоком tasks . $ is a custom macro that is first defined before the tasks block. Затем он вызывается в свойстве args . It is then called in the args property.
Эта задача применяется ко всем файлам. This task applies to all files. Открыв в обозревателе решений контекстное меню для любого файла, вы увидите в нижней части этого меню задачу с именем List Outputs (Перечислить выходные объекты). When you open the context menu on any file in Solution Explorer, the task’s name List Outputs appears at the bottom of the menu. Если выбрать команду List Outputs (Перечислить выходные объекты), все содержимое каталога bin выводится в окне Вывод в Visual Studio. When you choose List Outputs, the contents of the bin directory are listed in the Output window in Visual Studio.
Область действия параметров Settings scope
В корневой папке и вложенных папках базы кода может быть несколько файлов tasks.vs.json. Multiple tasks.vs.json files can exist at the root and subdirectories of a codebase. Такой подход позволяет гибко настраивать разные правила для разных каталогов в базе кода. This design enables the flexibility to have different behavior in different subdirectories of the codebase. Visual Studio объединяет или переопределяет параметры для разных разделов базы кода, используя следующий приоритет файлов: Visual Studio aggregates or overrides settings throughout the codebase, prioritizing files in the following order:
- файлы параметров в каталоге .vs в корневой папке; Settings files in the root folder’s .vs directory.
- каталог, для которого вычисляются параметры; The directory where a setting is being computed.
- родительский каталог текущего каталога (вплоть до корневого каталога); The current directory’s parent directory, all the way up to the root directory.
- файлы параметров в корневом каталоге. Settings files in the root directory.
Эти правила агрегирования применяются к tasks.vs.json. These aggregation rules apply to tasks.vs.json. Сведения о правилах агрегирования параметров для другого файла см. в посвященном ему разделе этой статьи. For information on how settings in other file are aggregated, see the corresponding section for that file in this article.
Свойства для tasks.vs.json Properties for tasks.vs.json
В этом разделе описаны некоторые свойства, которые можно задать в файле tasks.vs.json. This section describes some of the properties you can specify in tasks.vs.json.
appliesTo appliesTo
Вы можете создать задачи для любого файла или папки, указав их имена в поле appliesTo , например так: «appliesTo»: «hello.js» . You can create tasks for any file or folder by specifying its name in the appliesTo field, for example «appliesTo»: «hello.js» . В качестве значения можно использовать следующие маски файлов: The following file masks can be used as values:
Маска файла File mask | Описание Description |
---|---|
«*» | Задача доступна для всех файлов и папок в рабочей области. task is available to all files and folders in the workspace |
«*/» | Задача доступна для всех папок в рабочей области. task is available to all folders in the workspace |
«*.js» | Задача доступна для всех файлов с расширением JS в рабочей области. task is available to all files with the extension .js in the workspace |
«/*.js» | Задача доступна для всех файлов с расширением JS в корневой папке рабочей области. task is available to all files with the extension .js in the root of the workspace |
«src/*/» | Задача доступна для всех подпапок в папке SRC. task is available to all subfolders of the src folder |
«makefile» | Задача доступна для всех файлов makefile в рабочей области. task is available to all makefile files in the workspace |
«/makefile» | Задача доступна только для файлов makefile в корневой папке рабочей области. task is available only to the makefile in the root of the workspace |
Макросы для tasks.vs.json Macros for tasks.vs.json
Макрос Macro | Описание Description |
---|---|
$ | Обозначает любую переменную среды (например, $ |
$ | Полный путь к папке рабочей области (например, C:\sources\hello). The full path to the workspace folder (for example, C:\sources\hello) |
$ | Полный путь к файлу или папке, для которой выполняется текущая задача (например, C:\sources\hello\src\hello.js). The full path of the file or folder selected to run this task against (for example, C:\sources\hello\src\hello.js) |
$ | Относительный путь к файлу или папке (например, src\hello.js). The relative path to the file or folder (for example, src\hello.js) |
$ | Имя файла без пути или расширения (например, hello). The name of the file without path or extension (for example, hello) |
$ | Полный путь к файлу без имени этого файла (например, C:\sources\hello\src). The full path to the file, excluding the filename (for example, C:\sources\hello\src) |
$ | Расширение выбранного файла (например, JS). The extension of the selected file (for example, .js) |
Настройка отладки с помощью launch.vs.json Configure debugging with launch.vs.json
Сведения о настройке проектов CMake для отладки см. в разделе Настройка сеансов отладки CMake. To configure CMake projects for debugging, see Configure CMake debugging sessions.
Чтобы настроить отладку для базы кода, выберите в контекстном меню обозревателя решений пункт Параметры отладки и запуска. Также его можно открыть, щелкнув исполняемый файл правой кнопкой мыши. To configure your codebase for debugging, in Solution Explorer choose the Debug and Launch Settings menu item from the right-click or context menu of your executable file.
В диалоговом окне Выбор отладчика выберите нужный вариант и нажмите кнопку Выбрать. In the Select a Debugger dialog box, choose an option, and then choose the Select button.
Если файла launch.vs.json еще нет, он будет автоматически создан. If the launch.vs.json file doesn’t already exist, it is created.
Теперь щелкните правой кнопкой мыши исполняемый файл в обозревателе решений и выберите команду Назначить автозапускаемым элементом. Next, right-click on the executable file in Solution Explorer, and choose Set as Startup Item.
Теперь этот исполняемый файл будет отмечен как автозапускаемый элемент и его имя отобразится на кнопке Пуск на панели инструментов отладки. The executable is designated as the startup item for your codebase, and the debugging Start button’s title changes to reflect the name of your executable.
Нажатие клавиши F5 запускает отладчик, который будет останавливаться на всех заданных точках останова. When you choose F5, the debugger launches and stops at any breakpoint you may have already set. Все обычные окна отладчика будут доступны и активны. All the familiar debugger windows are available and functional.
Дополнительные сведения о настраиваемых задачах сборки и отладки в проектах открытых папок C++ см. в статье Open Folder support for C++ build systems in Visual Studio (Поддержка открытых папок для систем сборки C++ в Visual Studio). For additional details about custom build and debug tasks in C++ open folder projects, see Open Folder support for C++ build systems in Visual Studio.
Указание аргументов для отладки Specify arguments for debugging
Вы можете указать в файле launch.vs.json аргументы командной строки, которые будут переданы для отладки. You can specify command-line arguments to pass in for debugging in the launch.vs.json file. Добавьте нужные аргументы в массив args , как показано в следующем примере: Add the arguments in the args array, as shown in the following example:
Когда вы сохраните этот файл, имя новой конфигурации отобразится в раскрывающемся списке для целевого объекта отладки. Вы можете выбрать ее, чтобы запустить отладчик. When you save this file, the name of the new configuration appears in the debug target drop-down list, and you can select it to start the debugger. Можно создать любое количество конфигураций отладки. You can create as many debug configurations as you like.
Массив configurations , заданный в файле launch.vs.json, считывается из двух расположений — из корневого каталога базы кода и каталога .vs. The configurations array property in launch.vs.json is read from two file locations—the root directory for the codebase, and the .vs directory. Если между ними возникает конфликт, преимущество отдается значениям из .vs\launch.vs.json. If there is a conflict, priority is given to the value in .vs\launch.vs.json.
Дополнительные файлы параметров Additional settings files
Помимо трех файлов .json, которые описаны в этом разделе, Visual Studio считывает параметры из нескольких дополнительных файлов, если обнаружит их в базе кода. In addition to the three .json files described in this topic, Visual Studio also reads settings from some additional files, if they exist in your codebase.
.vscode\settings.json .vscode\settings.json
Visual Studio считывает часть параметров из файла с именем settings.json, если он находится в каталоге с именем .vscode. Visual Studio reads limited settings from a file named settings.json, if it is in a directory named .vscode. Этот механизм применяется для поддержки баз кода, которые ранее разрабатывались в Visual Studio Code. This functionality is provided for codebases that have previously been developed in Visual Studio Code. Сейчас из файла .vscode\settings.json считывается только один параметр files.exclude , который определяет фильтрацию для отображения файлов в обозревателе решений и некоторых средствах поиска. Currently, the only setting that is read from .vscode\settings.json is files.exclude , which filters files visually in Solution Explorer and from some search tools.
Вы можете определить в базе кода любое количество файлов .vscode\settings.json. You can have any number of .vscode\settings.json files in your codebase. Параметры из этого файла применяются к каталогу на один уровень выше соответствующего .vscode и ко всем его подкаталогам. Settings read from this file are applied to the parent directory of .vscode and all of its subdirectories.
.gitignore .gitignore
Файлы .gitignore позволяют указать Git, что некоторые файлы следует игнорировать. Здесь вы перечисляете файлы и каталоги, которые не нужно регистрировать в репозитории. .gitignore files are used to tell Git which files to ignore; that is, which files and directories you don’t want to check in. Файлы .gitignore обычно включаются в базу кода, чтобы все разработчики базы кода могли использовать эти параметры. .gitignore files are usually included as part of a codebase so that the settings can be shared with all developers of the codebase. Visual Studio считывает шаблоны из файлов .gitignore для фильтрации элементов при отображении и в некоторых средствах поиска. Visual Studio reads patterns in .gitignore files to filter items visually and from some search tools.
Параметры из файла .gitignore применяются к родительскому каталогу файла и всем его подкаталогам. Settings read from the .gitignore file are applied to its parent directory and all subdirectories.