Uživatelské nástroje

Nástroje pro tento web


workshopy:build

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

workshopy:build [2014/04/27 14:25]
stod odstraněno
— (aktuální)
Řádek 1: Řádek 1:
-====== Použití MSBuild v projektu ====== 
  
-===== Problém ===== 
- 
-[[http://​www.codinghorror.com/​blog/​archives/​000988.html|The F5 Key Is Not a Build Process]] 
- 
-===== Možnosti ===== 
- 
-[[http://​nant.sourceforge.net/​|NAnt]]:​ 
-  * vyspělejší,​ vychází ze známého Javového [[http://​ant.apache.org/​|Antu]] 
-  ​ 
-[[http://​msdn.microsoft.com/​en-us/​library/​ms171452.aspx|MSBuld]]:​ 
-  * "​hloupější",​ ale oficiální Microsoftí řešení 
-  * kompatibilní s Visual Studiem (ale do překvapivě malé míry) 
- 
-Přes zjevnou vyspělost NAntu jsem zvolil MSBuild, především kvůli kompatibilitě s Visual Studiem. 
-  * [[http://​www.paraesthesia.com/​archive/​2008/​01/​08/​why-nant-is-better-than-msbuild.aspx|Why NAnt Is Better Than MSBuild]] 
- 
- 
-===== Jak to funguje ===== 
-Každý projekt má definovaný tzv. build script, ve kterém je specifikováno,​ jaké akce se provádějí před kompilací (příprava resources), co se kompiluje a jak (knihovny, aplikace), vzájemné závislosti projektů apod. V tomto skriptu můžeme specifikovat vlastní úlohy (targety) skládající se z příkazů (tasky). Mezi jednotlivými targety mohou existovat závislosti,​ které např. zajistí, že před úlohou deploy proběhne nejprve kompilace a potom spuštění unit testů. 
- 
-V buildovacím skriptu je možné definovat proměnné (tzv. properties) a navíc přistupovat k některým rezervovaným proměnným,​ které nastavuje buildovací systém automaticky (např. rezervovaná proměnná MSBuildProjectDirectory vždy obsahuje absolutní cestu k právě buildovanému projektu). Proměnné je možné použít v podmínkách pro větvení nebo ke sdílení informací mezi jednotlivými targety. Typickým příkladem je zavedení proměnné ConnectionString,​ která zajistí, že připojení k DB definujeme na jediném místě a můžeme jej použít při automatizovaném dumpování databáze, jejím restore, ověřování spojení a konečně při přípravě konfiguračního souboru aplikace (viz níže). 
- 
-Úvod do fungování buildovacích systému viz  
- 
-Rady ohledně používání build systémů (pro ant, ale platí obecně): [[http://​www.onjava.com/​pub/​a/​onjava/​2003/​12/​17/​ant_bestpractices.html|Top 15 Ant Best Practices]] 
- 
- 
- 
- 
-  * import vlastnich tasku - bylo by to fajn, cistsi, nemuseli bychom hrabat do .csproj -- visual studio neumi detekovat a cachuje, takze dochazi k nekonzistencim -> lepsi editovat primo csproj, visual studio automaticky reloaduje solution 
-  * csproj.user -- ulozeni user-specific informaci -- fajn, ale opet, VS nedetekuje zmeny, proto je lepsi pouzivat uplne externi soubory, ze ktereho jsou nastaveni vzdy nahravana pomoci XPath 
-  * merge .conf souboru -- idealni pouzit jeden master a jeden .user, ktery neni v svn a ty zmergovat pomoci spec. tasku z community tasks 
-  * ulozeni community taksks v projektu 
-  * vygenerovane soubory by se mely pridat do clean 
-  * mely by se taky pridat do items, ktere zpusobuji build -- vyzkoumat, aby se netvoril porad novy app.config, i kdyz se nezmenily vstupy 
- 
-  * volani targetu z visual studia - nejde, pouzit command line 
-