Kompilace a ladění .NET aplikací z příkazového řádku
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Kompilace a ladění .NET aplikací z příkazového řádkuKompilace a ladění .NET aplikací z příkazového řádku

 

Kompilace a ladění .NET aplikací z příkazového řádku

Google       Google       11. 1. 2007       22 125×

V tomto článku bych vám chtěl ukázat možnosti ladění a kompilace .NET aplikací prostřednictvím příkazového řádku. Řekl bych, že to patří k základním dovednostem .NET vývojařů a na tomto serveru to doposud chybělo.

Naprostá většina z vás využívá při práci s jazykem C# vývojové prostředí, které se stará o kompilaci projektu a obsahuje grafický debugger – Visual Studio 2005, #Develop nebo třeba Turbo C#. Je to pochopitelné, ale přesto může nastat situace, kdy dané IDE není k dispozici a je nutné kompilovat a ladit aplikace prostřednictvím příkazového řádku. V tomto článku vám přiblížím základní možnosti nástrojů csc.exe a cordbg.exe, protože si myslím, že ovládání těchto nástrojů by mělo patřit k základním dovednostem .NET programátorů. Zmíněné nástroje jsou součásti balíku .NET Framework 2.0 SDK.

Konfigurace PC

Než začnete s kompilátorem a debuggerem pracovat, musíte systému říct, kde je má hledat. Nejrychlejší je spuštění příkazového řádku přes zástupce SDK Command Prompt, který by se měl nacházet v nabídce Start → Všechny programy → Microsoft .NET Framework SDK v2.0. Pokud tomu tak není, můžete ho jednoduše vytvořit. Jako cíl nového zástupce uveďte (včetně všech uvozovek):

C:\WINDOWS\SYSTEM32\cmd.exe /k ""C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\sdkvars.bat""

Do části „Spustit v“ zadejte:

"C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\"

Pokud chcete k nástrojům jednoduše přistupovat z běžného příkazového řádku, bude nutné pozměnit obsah systémové proměnné Path. To provedete podle následujícího postupu:

  1. Klikněte pravým tlačítkem na ikonu Tento počítač a zvolte Vlastnosti.
  2. Na záložce Upřesnit stiskněte tlačítko Proměnné prostředí.
  3. V seznamu Systémové proměnné poklikejte na proměnnou Path.
  4. Každá hodnota je od předcházející oddělená středníkem. Pro konfiguraci kompilátoru csc.exe přidejte cestu k adresáři .NET Frameworku:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\
  1. Pro využívání debuggeru cordbg.exe a dalších nástrojů přidejte ještě cestu k adresáři .NET SDK:
C:\Program Files\Microsoft Visual Studio 8\SDK\V2.0\Bin\

Práce s kompilátorem

Teď už jste připraveni k pohodlné kompilaci souborů .cs. V textovém editoru vytvořte nový soubor a zapište do něj zdrojový kód:

using System;

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Test");
        }
    }
}

Uložte soubor na nějaké vhodné místo (např. C:\Test) pod názvem Test.cs. Teď vás seznámím se základními výstupními volbami kompilátoru csc.exe. Volby se zapisují v podobě přepínačů před názvem vstupního souboru. V závorce jsou uvedené zkrácené tvary. Další možnosti kompilátoru zobrazíte příkazem csc /?.

Volba Význam
/out Uvádí název právě vytvářené assembly.
/target:exe [/t:exe] Vytvoří spustitelnou konzolovou aplikaci.
/target:library [/t:library] Vytvoří jednosouborovou assembly .dll.
/target:module [/t:module] Vytvoří modul – prvek vícesouborové assembly.
/target:winexe [/t:winexe] Podobný přepínač jako /t:exe – nezobrazí okno konzole.

Nyní spusťte příkazový řádek, přejděte do složky, kam jste umístili zdrojový soubor, a zadejte příkaz:

csc /out:Test.exe /target:exe Test.cs

Přepínač /target:exe můžete nahradit zkratkovým tvarem /t:exe a nebo ho můžete úplně vynechat, protože se jedná o výchozí volbu. Pokud nemáte zvláštní požadavky, můžete vynechat i přepínač /out. V takovém případě dojde k automatické volbě názvu assembly. V případě .dll bude název stejný jako název počátečního vstupního souboru, v případě .exe by měl být zvolen název typu, který obsahuje metodu Main(). Následně můžete aplikaci spustit.

Budete-li chtít kompilovat aplikaci z několika vstupních souborů, stačí uvést jejich výčet nebo můžete použít zástupný znak *, kterým informujete kompilátor, že má použít všechny vstupní soubory z daného adresáře.

csc /out:Test.exe /target:exe *.cs

Odkazy na externí assembly

V předchozí části jste využívali typ System.Console, který je uveden v assembly mscorlib.dll – kompilátor na ní odkazuje automaticky, ale můžete to zrušit uvedením přepínače /nostdlib. Nyní trochu pozměňte obsah zdrojového souboru.

using System;
using System.Windows.Forms;
using System.Drawing;

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Test");
            MessageBox.Show("Test System.Windows.Forms");
        }
    }
}

Odkazy na externí assembly přidáváte prostřednictvím klíčového slova using. Následně musíte kompilátor informovat, která assembly obsahuje použité jmenné prostory – to uděláte prostřednictvím přepínače /reference (zkráceně /r). V tomto případě je „nutné“ uvést assembly System.Windows.Forms.dll, protože používáte typ System.Windows.Forms.MessageBox a assembly System.Drawing pro demonstraci odkázání na více externích assembly (oddělují se středníkem).

csc /r:System.Windows.Forms.dll;System.Drawing.dll /out:Test.exe /target:exe *.cs

Příkazové soubory

Při budování složitějších aplikací by bylo při nejmenším zdlouhavé zadávat každý příkaz zvlášť. Proto je možné využívat tzv. příkazové soubory. Příkazové soubory mají příponu .rsp a obsahují všechny příkazy, které se mají při kompilaci vykonat. Vytvořte nový soubor a uložte ho do stejného adresáře jako Test.rsp.

# odkazy na assembly
/r:System.Windows.Forms.dll;System.Drawing.dll

# název a typ výstupní assembly
/out:Test.exe /target:exe 

# vstupní soubory
*.cs

Příkazový soubor předáte kompilátoru prostřednictvím znaku @, můžete samozřejmě uvést více příkazových souborů.

csc /out:NewTest.exe @Test.rsp

Uvedený přepínač /out nebude platný, protože bude překryt příkazem v souboru Test.rsp a název výstupní assembly tedy bude Test.exe. Výjimka platí pro přepínač /r, který je kumulativní.

Kompilátor implicitně využívá příkazový soubor csc.rsp, který je umístěn ve stejném adresáři jako samotný kompilátor. Jeho využívání můžete potlačit přepínačem /noconfig.

Práce s debuggerem

Debuggeru pro příkazový řádek se budu věnovat méně podrobně, protože ho jen málokdo bude používat. Níže naleznete seznam základních příkazů, které je možné použít. Podobně jako u kompilátoru je možné zobrazit další možnosti příkazem cordbg /?.

Příkaz Význam
break [b] Nastaví nebo zobrazí zarážky.
delete [del] Odstraní jednu nebo více zarážek.
exit [ex] Ukončí práci debuggeru.
go [g] Pokračuje v ladění, dokud nenarazí na další zarážku.
out [o] Krokuje ven z aktuální funkce.
print [p] Vytiskne všechny načtené proměnné.
si Krokuje k dalšímu řádku.
so Krokuje přes další řádek.

Než začnete svou aplikaci ladit, je dobré vygenerovat pro ni ladící symboly – když to neuděláte, nebudete moci při ladění prohlížet svůj zdrojový kód, ale pouze kód CIL, o kterém toho pravděpodobně moc nevíte. Soubor s ladícími symboly vytvoříte uvedením přepínače /debug při kompilaci.

csc /debug @Test.rsp

Pokud máte vygenerovaný soubor s ladícími symboly (přípona .pdb), stačí už jen otevřít relaci s cordbg.exe.

cordbg Test.exe

Více se debuggeru věnovat nebudu – v případě potřeby si vyhledejte informace v dokumentaci .NET Framework SDK.

Závěr

Zmíněné postupy je možné ve velké míře aplikovat i na kompilátory ostatních .NET jazyků, ale nikdy je nepoužívejte při tvorbě rozsáhlejších projektů – bude to pro vás znamenat pouze velkou ztrátu času. Veškeré zmíněné cesty k adresářům upravte vzhledem ke konfiguraci vašeho systému a k verzi nainstalovaného .NET Frameworku.

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
0 hlasů
Google
(fotka) Dušan JanošíkDušan vyvíjí software a webové aplikace na platformě .NET. Je milovníkem neuznávaných teorií, a zajímá se o parapsychologii a teraristiku.
Web     Twitter     Facebook     LinkedIn    

Nové články

Obrázek ke článku Stavebnice umělé inteligence 1

Stavebnice umělé inteligence 1

Článek popisuje první část stavebnice umělé inteligence. Obsahuje lineární a plošnou optimalizaci.  Demo verzi je možné použít pro výuku i zájmovou činnost. Profesionální verze je určena pro vývojáře, kteří chtějí integrovat popsané moduly do svých systémů.

Obrázek ke článku Hybridní inteligentní systémy 2

Hybridní inteligentní systémy 2

V technické praxi využíváme často kombinaci různých disciplín umělé inteligence a klasických výpočtů. Takovým systémům říkáme hybridní systémy. V tomto článku se zmíním o určitém typu hybridního systému, který je užitečný ve velmi složitých výrobních procesech.

Obrázek ke článku Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Vedení týmu v oboru informačních technologií se nijak zvlášť neliší od jiných oborů. Přesto však IT manažeři čelí výzvě v podobě velmi rychlého rozvoje a tím i rostoucími nároky na své lidi. Udržet pozornost, motivaci a efektivitu týmu vyžaduje opravdu pevné manažerské základy a zároveň otevřenost a flexibilitu pro stále nové výzvy.

Obrázek ke článku Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Za poslední rok se podoba práce zaměstnanců změnila k nepoznání. Především plošné zavedení home office, které mělo být zpočátku jen dočasným opatřením, je pro mnohé už více než rok každodenní realitou. Co ale dělat, když se při práci z domova ztrácí motivace, zaměstnanci přestávají komunikovat a dříve fungující tým se rozpadá na skupinu solitérů? Odborníci na personalistiku dali dohromady několik rad, jak udržet tým v chodu, i když pracovní podmínky nejsou ideální.

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý