Vytváření úloh sestavení a ladění pro vývoj open folder
Visual Studio může automaticky spouštět mnoho různých programovacích jazyků a základů kódu. Možnost Otevřít složku umožňuje okamžitě spustit kód pro rozpoznaný základ kódu bez speciálních pokynů a bez vytvoření projektu. Vývojáři tento přístup běžně používají k rychlému testování.
Některé základy kódu vyžadují vlastní nástroje sestavení, které Visual Studio nerozpozná nebo nemůže okamžitě zpracovat pomocí možnosti Otevřít složku . V těchto scénářích můžete definovat úlohy sestavení, abyste sadě Visual Studio řekli, jak sestavit a ladit kód. Úlohy sestavení určují všechny položky, které jazyk potřebuje k sestavení a spuštění kódu, a lze je použít k dokončení téměř jakékoli požadované operace.
Tento článek popisuje, jak definovat úlohy sestavení pro konfiguraci nastavení sestavení a ladění pro nerozpoznaný základ kódu bez projektu v sadě Visual Studio.
Prozkoumání konfiguračních souborů JSON
Visual Studio poskytuje pro přizpůsobení základu kódu bez projektu dva soubory JSON (.json) pro nastavení konfigurace: úkoly a spuštění. Visual Studio vytvoří (nebo otevře) tyto soubory podle potřeby, když v sadě Visual Studio Průzkumník řešení vyberete konkrétní možnosti.
Následující tabulka popisuje soubory JSON a postup jejich vytvoření v Průzkumník řešení.
Soubor JSON | Účel konfigurace | Přístup k souborům |
---|---|---|
tasks.vs.json | Definujte vlastní příkazy sestavení, přepínače vlastního kompilátoru a libovolné úlohy (nesouvisejí s sestavením). | V Průzkumník řešení kliknutím pravým tlačítkem na soubor nebo složku otevřete místní nabídku a vyberte Konfigurovat úkoly. |
launch.vs.json | Zadejte argumenty příkazového řádku pro ladění. | V Průzkumník řešení kliknutím pravým tlačítkem na soubor nebo složku otevřete místní nabídku a vyberte Přidat konfiguraci ladění. |
Přidání souborů JSON do správy zdrojového kódu
Ve výchozím nastavení se úlohy a spouštění souborů JSON nezobrazují v Průzkumník řešení. Soubory se nacházejí ve skryté složce s názvem .vs v kořenové složce (\) základu kódu. Soubory jsou skryté, protože se běžně nepřidávají do správy zdrojového kódu. Skryté soubory můžete zobrazit v sadě Visual Studio tak, že v Průzkumník řešení vyberete možnost Zobrazit všechny soubory.
Pokud chcete přidat soubory JSON do správy zdrojového kódu, přetáhněte soubory do kořenové složky (\) základu kódu ve vašem systému souborů. Soubory se zobrazí v Průzkumník řešení a zpřístupní se pro správu zdrojového kódu.
Definování úkolů pomocí tasks.vs.json
Skripty sestavení a externí operace se soubory v aktuálním pracovním prostoru můžete automatizovat spuštěním akcí přímo v sadě Visual Studio. Pokud chcete nakonfigurovat nový úkol, klikněte pravým tlačítkem myši na soubor nebo složku v Průzkumník řešení a vyberte Konfigurovat úkoly:
Tato akce vytvoří (nebo otevře) soubor tasks.vs.json ve složce .vs . V tomto souboru definujete úlohu sestavení nebo libovolný úkol a Visual Studio přidá název úkolu jako příkaz do nabídky Průzkumník řešení po kliknutí pravým tlačítkem myši. Úkol můžete vyvolat výběrem odpovídajícího příkazu v Průzkumník řešení.
Vlastní úkoly lze přidat do jednotlivých souborů nebo do všech souborů určitého typu. Například soubory balíčků NuGet je možné 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 JavaScriptu (.js).
Vytváření úloh pro nerozpoznané nástroje
Pokud váš základ kódu používá vlastní nástroje sestavení, které visual Studio nerozpoznají, nemůžete kód spustit a ladit v sadě Visual Studio, dokud nedokončíte další kroky konfigurace.
Úlohy sestavení můžete definovat, abyste sadě Visual Studio řekli, jak sestavit, znovu sestavit a vyčistit kód. Soubor tasks.vs.json kombinuje vnitřní vývojovou smyčku sady Visual Studio s vlastními nástroji sestavení, které definujete pro základ kódu.
Předpokládejme, že váš základ kódu má jeden soubor C# s názvem hello.cs. Soubor pravidel pro takový základ kódu může vypadat jako v tomto příkladu:
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
U podobného souboru pravidel, který obsahuje cíle sestavení, čištění a opětovného sestavení, můžete použít možnost Konfigurovat úlohy pro soubor pravidel a definovat následující tasks.vs.json soubor. Soubor JSON definuje úlohy 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 souboru tasks.vs.json visual Studio přidá odpovídající příkazy úkolů do nabídky po kliknutí pravým tlačítkem v Průzkumník řešení. V tomto příkladu jsou možnosti Sestavení, Opětovné sestavení a Vyčištění přidány do nabídky po kliknutí pravým tlačítkem myši pro instance souboru pravidel v základu kódu:
Visual Studio uvádí nové příkazy v nabídce po kliknutí pravým tlačítkem myši po příkazu Konfigurovat úkoly podle jejich contextType
nastavení. Příkazy Sestavení jsou příkazy sestavení, sestavení, opětovné sestavení a příkazy "clean" a jsou uvedeny v části Sestavení v nabídce zobrazené po kliknutí pravým tlačítkem myši.
Když v nabídce po kliknutí pravým tlačítkem vyberete vlastní příkaz úkolu, operace se spustí. Visual Studio zobrazuje výstup příkazu v okně Výstup a případné chyby sestavení v seznamu chyb.
Vytváření úkolů pro libovolné operace
Vlastní úlohy můžete definovat v souboru tasks.vs.json pro libovolnou operaci. Můžete definovat úkol, který zobrazí název aktuálně vybraného souboru v okně Výstup nebo zobrazí seznam souborů v zadané složce.
Příklad: Zobrazovaný název aktuálně vybraného souboru
Následující příklad ukazuje tasks.vs.json soubor, který definuje jeden libovolný úkol. Při vyvolání této úlohy zobrazí operace název souboru aktuálně vybraného souboru JavaScriptu (.js).
{
"version": "0.2.1",
"tasks": [
{
"taskName": "Echo filename",
"appliesTo": "*.js",
"type": "default",
"command": "${env.COMSPEC}",
"args": [ "echo ${file}" ]
}
]
}
Kód pro tuto úlohu definuje následující vlastnosti:
taskName
: Název příkazu úkolu pro Visual Studio, který se zobrazí v nabídce zobrazené po kliknutí pravým tlačítkem myši. V tomto případě název souboru Echo.appliesTo
: Soubory, na které má příkaz úkolu reagovat. V tomto případě soubory JavaScriptu (.js).command
: Příkaz, který se má vyvolat. Tato úloha používá proměnnouCOMSPEC
prostředí k identifikaci interpreta příkazového řádku (obvykle cmd.exe).args
: Všechny argumenty, které se mají předat při vyvolání příkazu sady Visual Studio.${file}
: Argumenty pro tento úkol zahrnují makro, které načte soubor aktuálně vybraný v Průzkumník řešení.
Po uložení souboru tasks.vs.json můžete kliknout pravým tlačítkem na libovolný soubor JavaScriptu (.js) ve složce a vybrat název souboru Echo. Visual Studio zobrazí vybraný název souboru v okně Výstup .
Příklad: Výpis souborů a podsložek
Následující příklad ukazuje tasks.vs.json soubor, který definuje úkol pro výpis souborů a podsložek složky bin :
{
"version": "0.2.1",
"outDir": "\"${workspaceRoot}\\bin\"",
"tasks": [
{
"taskName": "List Outputs",
"appliesTo": "*",
"type": "default",
"command": "${env.COMSPEC}",
"args": [ "dir ${outDir}" ]
}
]
}
Kód pro tuto úlohu definuje následující vlastnosti:
taskName
: Název příkazu úkolu pro nabídku, která se zobrazí po kliknutí pravým tlačítkem myši, vypsat výstupy.appliesTo
: Tento úkol slouží ke všem položkám v zadané složce, jak je uvedeno použitím zástupného znaku (*).command
: Podobně jako v předchozím příkladu úloha používáCOMSPEC
proměnnou prostředí k identifikaci interpreta příkazového řádku (cmd.exe).args
: Když Visual Studio vyvolá úlohu, předá volánídir
příkazu, který vypíše položky adresáře (složky).${outDir}
: Makro{outDir}
je definováno před blokemtasks
. Identifikuje složku bin jako adresář, na který se má jednat.
Tato úloha se vztahuje na všechny soubory v základu kódu. Když Visual Studio přidá název příkazu pro libovolnou úlohu do nabídky po kliknutí pravým tlačítkem myši, předpony příkazu Spustit jako v výstupech seznamu spuštění.
Pokud otevřete nabídku po kliknutí pravým tlačítkem myši pro libovolný soubor v Průzkumník řešení, zobrazí se příkaz Spustit seznam výstupů seznamu úkolů jako poslední příkaz v části Sestavení v nabídce. Když vyberete Výstupy seznamu spuštění, Sada Visual Studio vypíše obsah složky přihrádky pro základ kódu v okně Výstup :
Použití více task.vs.json souborů
V kořenové složce (\) a podsložkách základu kódu můžete mít více tasks.vs.json souborů. Tento přístup poskytuje flexibilitu při definování různých chování pro konkrétní podsložky nebo soubory v základu kódu.
Visual Studio agreguje nebo přepisuje nastavení v rámci základu kódu a upřednostňuje soubory v následujícím pořadí:
- Soubory nastavení ve složce .vs v kořenové složce (\)
- Složka, ve které se počítá nastavení.
- Nadřazená složka aktuální složky, až do kořenové složky (\) a včetně kořenové složky (\).
- Soubory nastavení v kořenové složce (\)
Tato pravidla agregace platí jenom pro instance tasks.vs.json souboru.
Kontrola vlastností pro tasks.vs.json
Následující části popisují některé vlastnosti, které můžete zadat v souboru tasks.vs.json .
Nastavení vlastnosti appliesTo
Úkoly pro libovolný soubor nebo složku můžete vytvořit zadáním názvu souboru nebo složky s appliesTo
vlastností, například "appliesTo": "hello.js"
.
Následující tabulka shrnuje hodnoty masky souboru, které můžete použít s appliesTo
vlastností k vytvoření konkrétního chování úlohy:
Hodnota (maska souboru) | Úkol se vztahuje na |
---|---|
"*" |
Všechny soubory a složky v pracovním prostoru |
"*/" |
Všechny složky v pracovním prostoru |
"*.js" |
Všechny soubory s příponou JavaScriptu (.js) v pracovním prostoru |
"/*.js" |
Všechny soubory s příponou JavaScriptu (.js) v kořenové složce (\) pracovního prostoru |
"src/*/" |
Všechny podsložky složky src |
"makefile" |
Všechny soubory s názvem makefile v pracovním prostoru |
"/makefile" |
Pouze soubor s názvem makefile v kořenové složce (\) pracovního prostoru |
Použití maker v argumentech úkolu
Makra můžete předat jako argumenty pro úlohu, která rozšíří chování úkolu při vyvolání příkazu v sadě Visual Studio.
V následující tabulce jsou uvedeny některé příklady maker:
Makro | Popis | Příklady |
---|---|---|
${env.<VARIABLE>} |
Určuje libovolnou proměnnou prostředí použitelnou v příkazovém řádku vývojáře. Další informace najdete v tématu Developer Command Prompt a Developer PowerShell. | ${env.PATH} , ${env.COMSPEC} |
${workspaceRoot} |
Poskytuje úplnou cestu ke složce pracovního prostoru. | C:\sources\hello , C:\sources\hello\bin |
${file} |
Poskytuje úplnou cestu k souboru nebo složce. | C:\sources\hello\src\hello.js* , C:\sources\hello\src\test.js* |
${relativeFile} |
Poskytuje relativní cestu k souboru nebo složce. | src\hello.js* , bin\hello.exe |
${fileBasename} |
Poskytuje název souboru s výjimkou cesty nebo přípony. | hello , test |
${fileDirname} |
Poskytuje úplnou cestu k souboru s výjimkou názvu souboru. | C:\sources\hello\src* , C:\sources\hello\bin\test\* |
${fileExtname} |
Poskytuje příponu vybraného souboru. | .js , , .cs .exe |
Konfigurace ladění pomocí launch.vs.json
Visual Studio poskytuje launch.vs.json soubor, který můžete použít ke konfiguraci ladění pro základ kódu.
Poznámka:
Pokud chcete nakonfigurovat projekty CMake pro ladění, přečtěte si téma Konfigurace ladicích relací CMake.
V Průzkumník řešení klikněte pravým tlačítkem na spustitelný soubor (.exe) a vyberte Přidat konfiguraci ladění:
V dialogovém okně Vybrat ladicí program vyberte ze seznamu možnost konfigurace ladění a pak zvolte Vybrat:
Pokud soubor launch.vs.json ještě neexistuje, Visual Studio ho vytvoří. Tady je příklad souboru vytvořeného pro spustitelný soubor hello.exe :
{ "version": "0.2.1", "defaults": {}, "configurations": [ { "type": "default", "project": "bin\\hello.exe", "projectTarget": "", "name": "hello.exe" } ] }
Po spuštění souboru klikněte pravým tlačítkem myši na spustitelný soubor pro základ kódu v Průzkumník řešení a vyberte Nastavit jako spouštěcí položku.
Spustitelný soubor je určen jako spouštěcí položka základu kódu a Visual Studio nastaví popisek pro tlačítko Start ladění tak, aby odrážel název vašeho spustitelného souboru:
Když spustíte ladicí program pomocí klávesy F5, Visual Studio spustí ladění kódu a zastaví se na libovolném nastaveném zarážce. Všechna známá okna ladicího programu jsou dostupná a funkční.
Další informace o vlastních úlohách sestavení a ladění v projektech otevřených složek jazyka C++ naleznete v tématu Podpora open folder pro systémy sestavení C++ v sadě Visual Studio.
Zadání argumentů pro ladění
Můžete zadat argumenty příkazového řádku, které se mají předat ladicímu programu v souboru launch.vs.json . 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" ]
}
]
}
Spuštění konfigurace ladění
Můžete vytvořit libovolný počet konfigurací ladění. Při uložení spouštěcího souboru se názvy konfigurace přidají do rozevíracího seznamu cíle ladění. Můžete vybrat konkrétní cíl, který spustí ladicí program:
Pokud v nabídce nevidíte další cíle, vyberte zobrazit nebo skrýt cíle ladění a nakonfigurujte viditelné cíle.
Vysvětlení priority pro konfigurace
Visual Studio prohledá dvě umístění položek zadaných ve configurations
vlastnosti pole v launch.vs.json souborech:
- Kořenová složka (\) pro základ kódu
- Složka .vs
Pokud máte launch.vs.json soubory v obou umístěních a v definici konfigurace došlo ke konfliktu, má přednost hodnota v souboru .vs\launch.vs.json .
Použití jiných souborů nastavení
Kromě úlohy a spuštění souborů JSON sada Visual Studio načte nastavení z jiných konfiguračních souborů definovaných v základu kódu. Mezi dva běžně používané soubory patří settings.json a .gitignore.
Definování nastavení kódu pomocí .vscode\settings.json
Visual Studio čte omezená nastavení ze souboru s názvem settings.json, když je soubor umístěný ve složce 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 čtení ze souboru files.exclude
.vscode\settings.json . Toto nastavení slouží k vizuálnímu filtrování souborů 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 několik souborů .vscode\settings.json . Nastavení načtená z tohoto souboru se použijí na nadřazenou složku .vscode a všechny její podsložky.
Konfigurace souborů Git pomocí .gitignore
Pomocí souboru .gitignore můžete Gitu dát vědět, které soubory se mají při použití správy zdrojového kódu ignorovat. Soubory .gitignore se běžně zahrnují jako 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í načtená ze souboru .gitignore se použijí u nadřazené složky a všech podsložek.