Přizpůsobení úloh sestavení a ladění pro vývoj open folder

Visual Studio ví, jak spouštět mnoho různých jazyků a základů kódu, ale neví, jak všechno spustit. Pokud jste otevřeli složku kódu v sadě Visual Studio a Visual Studio ví, jak kód spustit, můžete ho spustit hned bez jakékoli další konfigurace.

Pokud základ kódu používá vlastní nástroje sestavení, které Sada Visual Studio nerozpozná, musíte zadat některé podrobnosti konfigurace pro spuštění a ladění kódu v sadě Visual Studio. Dáte sadě Visual Studio pokyn, jak sestavit kód definováním úloh sestavení. Můžete vytvořit jednu nebo více úloh sestavení, které určují všechny položky, které jazyk potřebuje k sestavení a spuštění jeho kódu. Můžete také vytvořit libovolné úkoly, které můžou dělat téměř cokoli, co chcete. Můžete například vytvořit úkol pro výpis obsahu složky nebo přejmenování souboru.

Přizpůsobte základ kódu bez projektu pomocí následujících souborů .json :

Název souboru Účel
tasks.vs.json Zadejte vlastní příkazy sestavení a přepínače kompilátoru a libovolné úlohy (nesouvisejí s sestavením).
Přístup prostřednictvím položky nabídky Průzkumník řešení po kliknutí pravým tlačítkem myši Konfigurovat úkoly.
launch.vs.json Zadejte argumenty příkazového řádku pro ladění.
Přístup prostřednictvím položkynabídky Průzkumník řešení po kliknutí pravým tlačítkem myši Debug and Launch Nastavení.

Tyto soubory .json se nacházejí ve skryté složce s názvem .vs v kořenové složce základu kódu. Soubory tasks.vs.json a launch.vs.json vytváří Visual Studio podle potřeby, když v Průzkumník řešení zvolíte konfigurace úloh nebo ladění a spuštění Nastavení. Tyto soubory .json jsou skryté, protože uživatelé obvykle nechtějí kontrolovat jejich správu zdrojového kódu. Pokud je ale chcete zkontrolovat do správy zdrojového kódu, přetáhněte soubory do kořenového adresáře základu kódu pomocí systému souborů, kde jsou pak viditelné v Průzkumník řešení a ke správě zdrojového kódu.

Tip

Pokud chcete zobrazit skryté soubory v sadě Visual Studio, zvolte na panelu nástrojů Průzkumník řešení tlačítko Zobrazit všechny soubory.

Definování úloh pomocí tasks.vs.json

Skripty sestavení nebo jakékoli jiné externí operace se soubory, které máte v aktuálním pracovním prostoru, můžete automatizovat tak, že je spustíte jako úkoly přímo v integrovaném vývojovém prostředí( IDE). Nový úkol můžete nakonfigurovat tak, že kliknete pravým tlačítkem na soubor nebo složku a vyberete Konfigurovat úkoly.

Configure Tasks menu

Tím se vytvoří (nebo otevře) soubor tasks.vs.json ve složce .vs . V tomto souboru můžete definovat úlohu sestavení nebo libovolnou úlohu a potom ji vyvolat pomocí názvu, který jste mu dali z nabídky Průzkumník řešení po kliknutí pravým tlačítkem myši.

Vlastní úkoly lze přidat do jednotlivých souborů nebo do všech souborů určitého typu. Například soubory balíčků NuGet lze nakonfigurovat tak, aby měly úlohu "Obnovit balíčky" nebo všechny zdrojové soubory lze nakonfigurovat tak, aby měly úlohu statické analýzy, například linter pro všechny soubory .js .

Definování vlastních úloh sestavení

Pokud váš základ kódu používá vlastní nástroje sestavení, které Visual Studio nerozpozná, nemůžete kód spustit a ladit v sadě Visual Studio, dokud nedokončíte některé kroky konfigurace. Visual Studio poskytuje úlohy sestavení, ve kterých můžete sadě Visual Studio sdělit, jak sestavit, znovu sestavit a vyčistit kód. Soubor úloh sestavení tasks.vs.json páruje vnitřní smyčku vývoje sady Visual Studio k vlastním nástrojům sestavení používaným vaším základem kódu.

Představte si základ kódu, který se skládá z jednoho souboru C# s názvem hello.cs. Soubor pravidel pro takový základ kódu může vypadat takto:

build: directory hello.exe

hello.exe: hello.cs
	csc -debug hello.cs /out:bin\hello.exe

clean:
	del bin\hello.exe bin\hello.pdb

rebuild: clean build

directory: bin

bin:
	md bin

Pro takový soubor pravidel, který obsahuje cíle sestavení, vyčištění a opětovného sestavení, můžete definovat následující soubor tasks.vs.json. Obsahuje tři úlohy sestavení pro sestavení, opětovné sestavení a vyčištění základu kódu pomocí nástroje NMAKE jako nástroje sestavení.

{
  "version": "0.2.1",
  "outDir": "\"${workspaceRoot}\\bin\"",
  "tasks": [
    {
      "taskName": "makefile-build",
      "appliesTo": "makefile",
      "type": "launch",
      "contextType": "build",
      "command": "nmake",
      "args": [ "build" ],
      "envVars": {
        "VSCMD_START_DIR": "\"${workspaceRoot}\""
      }
    },
    {
      "taskName": "makefile-clean",
      "appliesTo": "makefile",
      "type": "launch",
      "contextType": "clean",
      "command": "nmake",
      "args": [ "clean" ],
      "envVars": {
        "VSCMD_START_DIR": "\"${workspaceRoot}\""
      }
    },
    {
      "taskName": "makefile-rebuild",
      "appliesTo": "makefile",
      "type": "launch",
      "contextType": "rebuild",
      "command": "nmake",
      "args": [ "rebuild" ],
      "envVars": {
        "VSCMD_START_DIR": "\"${workspaceRoot}\""
      }
    }
  ]
}

Po definování úloh sestavení v tasks.vs.json se do odpovídajících souborů v Průzkumník řešení přidají další položky místní nabídky (místní nabídka). V tomto příkladu se do místní nabídky všech souborů pravidel přidají možnosti sestavení, opětovné sestavení a vyčištění.

makefile context menu with build, rebuild, and clean

Poznámka:

Příkazy se zobrazí v místní nabídce pod příkazem Konfigurovat úkoly kvůli jejich contextType nastavení. "build", "rebuild" a "clean" jsou příkazy sestavení, takže se zobrazí v části sestavení uprostřed místní nabídky.

Když vyberete jednu z těchto možností, úloha se spustí. Výstup se zobrazí v okně Výstup a chyby sestavení se zobrazí v seznamu chyb.

Definování libovolných úkolů

V souboru tasks.vs.json můžete definovat libovolné úkoly, abyste udělali cokoliv, co chcete. Můžete například definovat úlohu, která zobrazí název aktuálně vybraného souboru v okně Výstup nebo zobrazí seznam souborů v zadaném adresáři.

Následující příklad ukazuje soubor tasks.vs.json , který definuje jeden úkol. Při vyvolání úloha zobrazí název souboru aktuálně vybraného souboru .js .

{
  "version": "0.2.1",
  "tasks": [
    {
      "taskName": "Echo filename",
      "appliesTo": "*.js",
      "type": "default",
      "command": "${env.COMSPEC}",
      "args": [ "echo ${file}" ]
    }
  ]
}
  • taskName určuje název, který se zobrazí v nabídce po kliknutí pravým tlačítkem myši.
  • appliesTo určuje, se kterými soubory lze příkaz provést.
  • Vlastnost command určuje příkaz, který se má vyvolat. V tomto příkladu COMSPEC se proměnná prostředí používá k identifikaci interpreta příkazového řádku, obvykle cmd.exe.
  • Vlastnost args určuje argumenty, které mají být předány do vyvolaného příkazu.
  • Makro ${file} načte vybraný soubor v Průzkumník řešení.

Po uložení tasks.vs.json můžete kliknout pravým tlačítkem myši na libovolný soubor .js ve složce a zvolit název souboru Echo. Název souboru se zobrazí v okně Výstup .

Poznámka:

Pokud základ kódu neobsahuje soubor tasks.vs.json, můžete ho vytvořit tak, že v místní nabídce souboru v Průzkumník řešení zvolíte Konfigurovat úkoly.

Další příklad definuje úlohu, která zobrazí seznam souborů a podsložek adresáře bin .

{
  "version": "0.2.1",
  "outDir": "\"${workspaceRoot}\\bin\"",
  "tasks": [
    {
      "taskName": "List Outputs",
      "appliesTo": "*",
      "type": "default",
      "command": "${env.COMSPEC}",
      "args": [ "dir ${outDir}" ]
    }
  ]
}
  • ${outDir} je vlastní makro, které je nejprve definováno před blokem tasks . Potom se volá ve args vlastnosti.

Tato úloha se vztahuje na všechny soubory. Když otevřete místní nabídku v libovolném souboru v Průzkumník řešení, zobrazí se v dolní části nabídky výstupy seznamu názvů úkolu. Když zvolíte Výpis výstupů, obsah adresáře bin se zobrazí v okně Výstup v sadě Visual Studio.

Arbitrary task in context menu

rozsah Nastavení

V kořenovém adresáři a podadresáři základu kódu může existovat více souborů tasks.vs.json . Tento návrh umožňuje flexibilitu mít různé chování v různých podadresářích základu kódu. Visual Studio agreguje nebo přepíše nastavení v rámci základu kódu a určuje prioritu souborů v následujícím pořadí:

  • Nastavení soubory v adresáři .vs kořenové složky.
  • Adresář, ve kterém se počítá nastavení.
  • Nadřazený adresář aktuálního adresáře až do kořenového adresáře.
  • Nastavení soubory v kořenovém adresáři.

Tato pravidla agregace platí pro tasks.vs.json. Informace o agregaci nastavení v jiném souboru najdete v příslušné části tohoto souboru v tomto článku.

Vlastnosti pro tasks.vs.json

Tato část popisuje některé vlastnosti, které můžete zadat v tasks.vs.json.

appliesTo

Úkoly pro libovolný soubor nebo složku můžete vytvořit zadáním jeho názvu do appliesTo pole, například "appliesTo": "hello.js". Jako hodnoty lze použít následující masky souborů:

Maska souboru Popis
"*" úkol je k dispozici pro všechny soubory a složky v pracovním prostoru.
"*/" úkol je k dispozici pro všechny složky v pracovním prostoru.
"*.js" úkol je k dispozici pro všechny soubory s příponou .js v pracovním prostoru.
"/*.js" Úloha je k dispozici pro všechny soubory s příponou .js v kořenovém adresáři pracovního prostoru.
"src/*/" úkol je k dispozici pro všechny podsložky složky src .
"makefile" úkol je k dispozici pro všechny soubory souboru pravidel v pracovním prostoru.
"/makefile" Úkol je k dispozici pouze pro soubor pravidel v kořenovém adresáři pracovního prostoru.

Makra pro tasks.vs.json

Makro Popis
${env.<VARIABLE>} Určuje libovolnou proměnnou prostředí (například ${env. PATH}, ${env. COMSPEC} a tak dále), který je nastavený pro příkazový řádek vývojáře. Další informace najdete v tématu Developer Command Prompt a Developer PowerShell.
${workspaceRoot} Úplná cesta ke složce pracovního prostoru (například C:\sources\hello)
${file} Úplná cesta k souboru nebo složce vybrané ke spuštění této úlohy (například C:\sources\hello\src\hello.js)
${relativeFile} Relativní cesta k souboru nebo složce (například src\hello.js)
${fileBasename} Název souboru bez cesty nebo přípony (například hello)
${fileDirname} Úplná cesta k souboru s výjimkou názvu souboru (například C:\sources\hello\src)
${fileExtname} Přípona vybraného souboru (například .js)

Konfigurace ladění pomocí launch.vs.json

Pokud chcete nakonfigurovat projekty CMake pro ladění, přečtěte si téma Konfigurace ladicích relací CMake.

  1. Chcete-li nakonfigurovat základ kódu pro ladění, v Průzkumník řešení zvolte položku nabídky Ladit a Spustit Nastavení z místní nabídky nebo místní nabídky spustitelného souboru.

    Debug and Launch Settings context menu

  2. V dialogovém okně Vybrat ladicí program zvolte možnost a pak zvolte tlačítko Vybrat .

    Select a Debugger dialog box

    Pokud soubor launch.vs.json ještě neexistuje, vytvoří se.

    {
      "version": "0.2.1",
      "defaults": {},
      "configurations": [
        {
          "type": "default",
          "project": "bin\\hello.exe",
          "name": "hello.exe"
        }
      ]
    }
    
  3. Potom klikněte pravým tlačítkem na spustitelný soubor v Průzkumník řešení a zvolte Nastavit jako spouštěcí položku.

    Spustitelný soubor je určen jako spouštěcí položka základu kódu a název tlačítka Start ladění se změní tak, aby odrážel název spustitelného souboru.

    Customized Start button

    Když zvolíte F5, ladicí program se spustí a zastaví na libovolné zarážce, kterou jste už možná nastavili. Všechna známá okna ladicího programu jsou dostupná a funkční.

    Důležité

    Další podrobnosti o vlastních úlohách sestavení a ladění v projektech otevřených složek jazyka C++ najdete v tématu Podpora open folder pro systémy sestavení C++ v sadě Visual Studio.

Zadání argumentů pro ladění

Do souboru launch.vs.json můžete zadat argumenty příkazového řádku, které se mají předat pro ladění. Přidejte do pole argumenty, jak je znázorněno v následujícím příkladu args :

{
  "version": "0.2.1",
  "defaults": {},
  "configurations": [
    {
      "type": "default",
      "project": "bin\\hello.exe",
      "name": "hello.exe"
    },
    {
      "type": "default",
      "project": "bin\\hello.exe",
      "name": "hello.exe a1",
      "args": [ "a1" ]
    }
  ]
}

Při uložení tohoto souboru se název nové konfigurace zobrazí v rozevíracím seznamu cíle ladění a můžete ho vybrat a spustit ladicí program. Můžete vytvořit libovolný počet konfigurací ladění.

Debug configurations drop-down list

Poznámka:

Vlastnost pole ve souboru launch.vs.json se načítá ze dvou umístění souborů – kořenového adresáře pro základ kódu a adresáře .vs.configurations Pokud dojde ke konfliktu, priorita se přidělí hodnotě v souboru .vs\launch.vs.json.

Další soubory nastavení

Kromě tří souborů .json popsaných v tomto tématu sada Visual Studio také čte nastavení z některých dalších souborů, pokud existují v základu kódu.

.vscode\settings.json

Visual Studio čte omezená nastavení ze souboru s názvem settings.json, pokud je v adresáři s názvem .vscode. Tato funkce je poskytována pro základy kódu, které byly dříve vyvinuty v editoru Visual Studio Code. V současné době je jediným nastavením, které je přečteno z souboru .vscode\settings.jsonfiles.exclude, které filtruje soubory vizuálně v Průzkumník řešení a z některých vyhledávacích nástrojů.

V základu kódu můžete mít libovolný počet souborů .vscode\settings.json . Nastavení čtení z tohoto souboru se použijí na nadřazený adresář .vscode a všechny jeho podadresáře.

.gitignore

Soubory .gitignore slouží k tomu, aby Gitu řekl, které soubory se mají ignorovat. To znamená, které soubory a adresáře nechcete vrátit se změnami. Soubory .gitignore jsou obvykle součástí základu kódu, aby bylo možné nastavení sdílet se všemi vývojáři základu kódu. Visual Studio čte vzory v souborech .gitignore za účelem vizuálního filtrování položek a z některých vyhledávacích nástrojů.

Nastavení čtení ze souboru .gitignore se použijí na nadřazený adresář a všechny podadresáře.