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

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       16 751×

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.

Reklama
Reklama

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 Delphi 10.1.2 (Berlin Update 2) – na co se můžeme těšit

Delphi 10.1.2 (Berlin Update 2) – na co se můžeme těšit

Touto roční dobou, kdy je zem pokrytá barevným listím a prsty křehnou v mrazivých ránech, se obvykle těšíme na zbrusu novou verzi RAD Studia. Letos si však ale budeme muset počkat na Godzillu a Linux až do jara. Vezměme tedy za vděk alespoň updatem 2 a jelikož dle vyjádření pánů z Embarcadero se budou nové věci objevovat průběžně, pojďme se na to tedy podívat.

Reklama
Reklama
Obrázek ke článku Konference: Moderní datová centra pro byznys dneška se koná už 24. 11.

Konference: Moderní datová centra pro byznys dneška se koná už 24. 11.

Stále rostoucí zájem o cloudové služby i maximální důraz na pružnost, spolehlivost a bezpečnost IT vedou k výrazným inovacím v datových centrech. V infrastruktuře datových center hraje stále významnější roli software a stále častěji se lze setkat s hybridními přístupy k jejich budování i provozu.

Obrázek ke článku Konference: Mobilní technologie mají velký potenciál pro byznys

Konference: Mobilní technologie mají velký potenciál pro byznys

Firmy by se podle analytiků společnosti Gartner měly  rychle přizpůsobit skutečnosti, že mobilní technologie už zdaleka nejsou horkou novinkou, ale standardní součástí byznysu. I přesto - nebo možná právě proto - tu nabízejí velký potenciál. Kde tedy jsou ty největší příležitosti? I tomu se bude věnovat již čtvrtý ročník úspěšné konference Mobilní řešení pro business.

Obrázek ke článku Hackerský kongres přiveze v září do Prahy špičky světové kryptoanarchie

Hackerský kongres přiveze v září do Prahy špičky světové kryptoanarchie

Hackerský kongres HCPP16 pořádá od 30. září do 2. října nezisková organizace Paralelní Polis již potřetí, a to ve stejnojmenném bitcoinovém prostoru v pražských Holešovicích. Letos přiveze na třídenní konferenci přes 40 většinou zahraničních speakerů – lídrů z oblastí technologií, decentralizované ekonomiky, politických umění a aktivismu. Náměty jejich přednášek budou také hacking, kryptoměny, věda, svoboda nebo kryptoanarchie.

loadingtransparent (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý