Sdílet prostřednictvím


Aktivity sestavení Team Foundation Build

Aktivity systému Team Foundation Build jsou základní součástí procesu sestavení systému Team Foundation Build.Tyto aktivity lze použít k vytvoření vlastního procesu sestavení tak, aby splnil požadavky týmu. Například lze přidat vlastní logiku nebo provést specializované úkoly.

Ve většině případů je nejlepším způsobem vytvoření vlastní šablony procesu sestavení její odvození z Výchozí šablony (DefaultTemplate.xaml).Tímto způsobem lze využít výhod již vytvořených obecně užitečných funkcí, přičemž lze upravit pouze určité části tak, aby splňovaly vaše požadavky.Další výhodou tohoto přístupu je, že lze vidět konkrétní a praktické příklady použití aktivit, které toto téma popisuje.Další informace o tvorbě vlastní šablony procesu sestavení naleznete v tématu Přizpůsobení šablony procesu sestavení.

Důležitá poznámkaDůležité

Vlastní proces sestavení byste měli vytvořit, pouze pokud je nutné splnit zvláštní požadavky.K rychlému definování procesu sestavení, který splňuje mnoho typických požadavků, lze použít šablonu DefaultTemplate.xaml.Další informace naleznete v tématu Použití výchozí šablony pro proces sestavení.

V tomto tématu

  • Požadovaná oprávnění

  • Odkazy na aktivity orientované na cíl

  • Odkazy na aktivity podle abecedy

Požadovaná oprávnění

Chcete-li provádět postupy, které používají aktivity systému Team Foundation Build, je nutné mít následující oprávnění nastavena na hodnotu Povolit:

  • Úprava definice sestavení

  • Funkce Rezervovat a Vrátit se změnami pro příslušné adresáře správy verzí (jako je podsložka BuildProcessTemplates vašeho týmového projektu)

  • Vložení sestavení do fronty

Další informace naleznete v tématu Oprávnění v prostředí Team Foundation Server.

Odkazy na aktivity orientované na cíl

  • Provádění základních úloh

    • Získání hodnoty proměnných prostředí

    • Testování proměnných na hodnotu Null

    • Získání cesty k souborům v pracovním prostoru

    • Práce s adresáři

    • Získání cesty k pracovnímu adresáři agenta sestavení

    • Stažení souborů, které nejsou v pracovním prostoru

    • Nalezení souborů

    • Zápis varování, chyb, zpráv a dalších dat do protokolu sestavení

    • Zápis metadat sestavení do datového skladu

  • Řízení procesu sestavení

    • Spuštění aktivit na agentu sestavení

    • Použití pojmenované struktury mutex k implementaci procesu bezpečného pro přístup z více vláken

    • Omezení částí procesu sestavení v závislosti na důvodu (aktivační procedura)

  • Kompilace, testování a provádění dalších úloh

    • Použití aktivity MSBuild ke kompilaci binárních souborů, spuštění analýzy kódu a provádění dalších úloh

    • Spouštění testů

    • Získání seznamu testů, které sestavení ovlivňuje

    • Spuštění procesu

  • Práce se správou verzí

    • Přidružení sad změn a pracovních položek k sestavením

    • Vrácení se změnami hlídaných změn

    • Vyhodnocení zásad vrácení se změnami

    • Popisování souborů ve správě verzí

    • Získání seznamu sad odložených změn

    • TfGet

    • TfResolve

    • TfShelve

    • TfUndo

    • TfUnshelve

    • TfWorkfold

  • Práce s pracovními položkami

    • Přidružení sad změn a pracovních položek k sestavením

    • Vytvoření pracovní položky

  • Práce s daty symbolů

    • Vložení cesty a verze správy verzí do vašich souborů dat symbolů .pdb

    • Publikování symbolů do úložiště symbolů SymStore

  • Získání odkazů na užitečné objekty

    • Získání odkazu na objekt pro kolekci týmových projektů

    • Získání odkazu na objekt pro agenta sestavení

    • Získání odkazu na objekt pro podrobnosti sestavení

    • Získání odkazu na objekt pro prostředí sestavení

Odkazy na aktivity podle abecedy

  • AgentScope

  • ApproveRequestForCheckIn

  • AssociateChangesetsAndWorkItems

  • CheckInGatedChanges

  • ConvertWorkspaceItem

  • ConvertWorkspaceItems

  • CopyDirectory

  • CreateDirectory

  • CreateWorkspace

  • DeleteDirectory

  • DeleteWorkspace

  • DownloadFile

  • DownloadFiles

  • EvaluateCheckInPolicies

  • ExpandEnvironmentVariables

  • FindMatchingFiles

  • GenerateRunSettings

  • GetApprovedRequests

  • GetBuildAgent

  • GetBuildDetail

  • GetBuildDirectory

  • GetBuildEnvironment

  • GetCommonLocalPath

  • GetCommonServerPath

  • GetImpactedTests

  • GetPendingChanges

  • GetRejectedRequests

  • GetReshelvedShelveset

  • GetShelvedChanges

  • GetTeamProjectCollection

  • GetWorkspace

  • IndexSources

  • InvokeForReason

  • InvokeProcess

  • IsNotNull<T>

  • IsNull<T>

  • LabelSources

  • LabelWorkspace

  • MSBuild

  • MSTest

  • OpenWorkItem

  • ParseWorkspaceSpec

  • PublishSymbols

  • QueryShelvesets

  • RejectRequestFromCheckIn

  • RetryRequest

  • RetryRequests

  • RevertWorkspace

  • RunOnce

  • RunTests

  • SetBuildProperties

  • SharedResourceScope

  • SyncWorkspace

  • SynchronizeRequests

  • TfGet

  • TfQueryConflicts

  • TfResolve

  • TfShelve

  • TfUndo

  • TfUnshelve

  • TfWorkfold

  • TfsBuild

  • UpdateBuildNumber

  • WriteBuildError

  • WriteBuildInformation<T>

  • WriteBuildMessage

  • WriteBuildTestError

  • WriteBuildWarning

  • WriteCustomSummaryInformation

Provádění základních úloh

Aktivity systému Team Foundation Build lze použít k provedení následujících úloh:

  • Získání hodnoty proměnných prostředí

  • Získání cesty k souborům v pracovním prostoru

  • Práce s adresáři

  • Získání cesty k pracovnímu adresáři agenta sestavení

  • Stažení souborů, které nejsou v pracovním prostoru

  • Nalezení souborů

  • Zápis varování, chyb, zpráv a dalších dat do protokolu sestavení

  • Zápis metadat sestavení

Získání hodnot proměnných prostředí (aktivita ExpandEnvironmentVariables)

Aktivitu ExpandEnvironmentVariables lze použít k vyřešení hodnoty jedné nebo více proměnných prostředí na serveru sestavení.Pokud je tato aktivita uvnitř sekvence AgentScope, jsou proměnné prostředí načteny z agentu sestavení, jinak jsou načteny z kontroléru sestavení.

Tip

Klíčová data lze získat z proměnných prostředí TF_BUILD.Například můžete získat adresář s binárními soubory, což je adresář, ze kterého proces sestavení kopíruje výstupní soubory do pracovního umístění.Další informace naleznete v tématu Proměnné prostředí sestavení Team Foundation Build.

Vlastnost Výsledek ExpandEnvironmentVariables (String)

Vrací výsledek operace.Například: The temp directory on machine BLDSERV3 is C:\windows\SERVIC~2\NETWOR~1\AppData\Local\Temp.

Vlastnosti argumentu ExpandEnvironmentVariables

  • Vstup (String): Je nutné zadat řetězec obsahující proměnné prostředí, které chcete vyřešit.Každou proměnnou prostředí je nutné naformátovat zadáním vlastnosti MSBuild namísto zápisem pomocí symbolu procenta systému Windows.Například: "The temporary directory on machine $(COMPUTERNAME) is $(TEMP)."

  • AdditionalVariables (IDictionary<String,String>): Lze zadat objekt IDictionary obsahující další proměnné (jako klíče), které chcete přeložit na jejich odpovídající hodnoty.

Zpět na začátek

Testování proměnných na hodnotu Null

IsNotNull&lt;T&gt;

Aktivitu IsNotNull<T> lze použít k otestování, zda výraz jazyka Visual Basic, například používaná proměnná, zadaný do vlastnosti Hodnota (Object) není Null.Výsledek testu je vrácen ve vlastnosti VýsledekBoolean.

IsNull&lt;T&gt;

Aktivitu IsNull<T> lze použít k otestování, zda výraz jazyka Visual Basic, například používaná proměnná, zadaný do vlastnosti Hodnota (Object) je Null.Výsledek testu je vrácen ve vlastnosti VýsledekBoolean.

Získání cesty k souborům v pracovním prostoru

Každé sestavení má pracovní prostor správy verzí, který je definován na kartě Pracovní prostor definice sestavení.Pracovní prostor sestavení poskytuje přístup k souborům zdrojového kódu a jakýmkoli dalším souborům, které jsou potřebné ze systému správy verzí.Systém Team Foundation Build poskytuje dvě aktivity, které lze použít pro práci se soubory v pracovním prostoru sestavení: ConvertWorkspaceItema ConvertWorkspaceItems.

Další informace o pracovních prostorech sestavení naleznete v tématu Vytvoření nebo úprava definice sestavení.

Tip

Podrobný postup, jak používat aktivitu ConvertWorkspaceItem v rámci typického scénáře, naleznete v tématu Řízení, kde sestavení systému umístí do binární soubory.

Získání cesty k souboru v pracovním prostoru (aktivita ConvertWorkspaceItem)

Aktivitu ConvertWorkspaceItem lze použít k převodu cesty serveru na místní cestu agenta sestavení nebo k převodu místní cesty agenta sestavení na cestu serveru.

Vlastnost Výsledek ConvertWorkspaceItem (String)

Vrací převedenou cestu.

Vlastnosti argumentu ConvertWorkspaceItem

  • Vstup (String): Je třeba zadat hodnotu cesty, kterou chcete převést.

  • Pracovní prostor (Workspace): Je třeba zadat odkaz na pracovní prostor Workspace obsahující soubor.Ve většině případů byste tuto vlastnost měli nastavit na proměnnou inicializovanou ve vlastnosti Výsledek aktivity CreateWorkspace.Při vytváření procesu sestavení, který je založen na šabloně DefaultTemplate.xaml, je vhodné použít proměnnou pracovního prostoru Workspace.

  • Směr

    • Převod cesty serveru na místní cestu: Ve vlastnosti Směr vyberte možnost ServerToLocal a poté zadejte cestu k souboru na serveru jako hodnotu vlastnosti Vstup (String).

      Váš tým například může ukládat společné nástroje v následujícím adresáři: $/OurTeam/BuildProcess/Util.Lze vytvořit vlastní proces sestavení, který spustí nástroj ScanBinaries.exe poté, co jsou binární soubory zkompilovány.Pokud je na kartě Pracovní prostor vaší definice sestavení namapována cesta $/OurTeam/BuildProcess/Util, lze zadat cestu $/OurTeam/BuildProcess/Util/ScanBinaries.exe jako hodnotu vlastnosti Vstup k získání místní cesty k nástroji z vlastnosti Výsledek (String).

    • Převod místní cesty na cestu serveru: Ve vlastnosti Směr vyberte možnost ServerToLocal a poté zadejte místní cestu agenta sestavení k souboru jako hodnotu vlastnosti Vstup.

Získání cesty k souborům v pracovním prostoru (aktivita ConvertWorkspaceItems)

Aktivitu ConvertWorkspaceItems lze použít k převodu cest serveru na místní cesty agenta sestavení nebo k převodu místních cest agenta sestavení na cesty serveru.

Vlastnost Výsledek ConvertWorkspaceItems (IList<String>)

Vrací hodnoty převedených cest.

Vlastnosti argumentu ConvertWorkspaceItems

  • Vstup (IEnumerable<String>): Je třeba zadat hodnoty cest, které chcete převést.

  • Pracovní prostor (Workspace): Je třeba zadat odkaz na pracovní prostor Workspace obsahující soubory.Ve většině případů byste tuto vlastnost měli nastavit na proměnnou inicializovanou ve vlastnosti Výsledek aktivity CreateWorkspace.

    Tip

    Při vytváření procesu sestavení, který je založen na šabloně DefaultTemplate.xaml, je vhodné použít proměnnou pracovního prostoru Workspace.

  • Směr: Vyberte jednu z následujících hodnot:

    • Vyberte možnost ServerToLocal, pokud zadáváte kolekci hodnot cest serveru jako hodnotu vlastnosti Vstup a chcete, aby vlastnost Výsledek vrátila seznam hodnot místních cest.

    • Vyberte možnost LocalToServer, pokud zadáváte kolekci hodnot místních cest jako hodnotu vlastnosti Vstup a chcete, aby vlastnost Výsledek vrátila seznam hodnot cest serveru.

Práce s adresáři

V systému Team Foundation Build lze s adresáři pracovat pomocí několika aktivit.

Tip

Pokud je nutné pracovat s adresáři, které jsou součástí pracovního prostoru správy verzí vašeho sestavení, je vhodné použít aktivity pracovního prostoru.Další informace naleznete v tématu Získání cest k souborům v pracovním prostoru.

Vytvoření adresáře (aktivita CreateDirectory)

Aktivitu CreateDirectory lze použít k vytvoření adresáře, jehož název zadejte jako hodnotu vlastnosti Adresář (String).

Kopírování adresáře (aktivita CopyDirectory)

Aktivitu CopyDirectory lze použít k rekurzivnímu kopírování veškerého obsahu jednoho adresáře, který zadáte jako hodnotu vlastnosti Zdroj (String), do jiného adresáře, který zadáte jako hodnotu vlastnosti Cíl (String).Adresář, který zadáte jako hodnotu vlastnosti Cíl, již musí existovat.Prázdné adresáře a podadresáře nejsou zkopírovány.

Odstranění adresáře (aktivita DeleteDirectory)

Aktivitu DeleteDirectory lze použít k odstranění adresáře, jehož název zadáte jako hodnotu vlastnosti Adresář (String).Pokud adresář, který odstraňujete, obsahuje podsložky, je nutné nastavit vlastnost Rekurzivní (Boolean) na hodnotu True, jinak se sestavení nezdaří.

Získání cesty k pracovnímu adresáři agenta sestavení (aktivita GetBuildDirectory)

Aktivitu GetBuildDirectory lze použít k získání literální cesty k pracovnímu adresáři agenta sestavení z vlastnosti Výsledek (String).Tuto aktivitu lze použít pouze v rámci aktivity AgentScope.

Zpět na začátek

Manipulace s daty cest

Aktivita GetCommonLocalPath

Aktivitu GetCommonLocalPath lze použít k získání cesty ke společné nadřazené složce nejnižší úrovně jedné nebo více místních složek.Pokud například zadáte LocalItems (IEnumerable<String>) tímto způsobem:

{“c:\Code\Fabrikam-3\TestScrum\Main\FabrikamFiber.CallCenter”, “c:\Code\Fabrikam-3\TestScrum\Main\lib”}

Potom vlastnost Výsledek (String) vrátí:

c:\Code\Fabrikam-3\TestScrum\Main

Aktivita GetCommonServerPath

Aktivitu GetCommonServerPath lze použít k získání cesty ke společné nadřazené složce nejnižší úrovně jedné nebo více místních složek.Pokud například zadáte ServerItems (IEnumerable<String>) tímto způsobem:

{“$/TestScrum/Main/FabrikamFiber.CallCenter”, “$/TestScrum/Main/lib”}

Potom vlastnost Výsledek (String) vrátí:

$/TestScrum/Main

Stažení souborů, které nejsou v pracovním prostoru

Aktivitu DownloadFiles lze použít ke stažení jednoho nebo více souborů.Ignorujte aktivitu DownloadFile.

Aktivita DownloadFiles

Aktivitu DownloadFiles lze použít ke stažení jednoho nebo více souborů ze správy verzí.

Tip

Pokud jsou soubory, které chcete stáhnout, v pracovním prostoru sestavení, měli byste k nim přistupovat pomocí aktivity ConvertWorkspaceItem.

Vlastnosti argumentu DownloadFiles

  • LocalPath (String) Je nutné zadat hodnotu:

    • Pokud stahujete jediný soubor, zadejte místní cestu a název, kterým chcete pojmenovat místní kopii stahovaného souboru, například "c:\Docs\readme.txt".

    • Pokud stahujete více souborů, zadejte místní cestu k adresáři, do kterého chcete soubory stáhnout, například "c:\Docs\".

  • ServerPath (String) Je nutné zadat hodnotu:

    • Pokud stahujete jediný soubor, zadejte cestu serveru a název souboru, který stahujete, například "$/Docs/readme.txt".

    • Pokud stahujete více souborů, zadejte cestu na serveru k adresáři obsahujícímu soubory, které chcete stáhnout, například "$/Docs/".

  • Rekurze (RecursionType):

    • OneLevel: Stáhne soubor nebo soubory v adresáři zadaném jako hodnota vlastnosti ServerPath.

    • Full: Stáhne soubory v adresáři zadaném jako hodnota vlastnosti ServerPath a všechny soubory ve všech podadresářích.

  • Verze (String): Lze zadat hodnotu specifikace versionspec.Chcete-li stáhnout aktuální verzi, ponechejte tuto vlastnost nastavenu na hodnotu Microsoft.TeamFoundation.VersionControl.Client.VersionSpec.Latest.DisplayString. Další informace o hodnotách versionspecs naleznete v tématu Syntaxe příkazového řádku.

  • DeletionID (Int32): Tuto vlastnost je nutné zadat pouze v případě, že stahujete soubor, který byl odstraněn ze správy verzí.Tuto hodnotu lze získat interaktivně zadáním příkazu tf dir /deleted do příkazového řádku. (Další informace naleznete v tématu Dir Command).Systém Team Foundation Build však neposkytuje předdefinovanou aktivitu k získání vlastnosti DeletionID.Chcete-li použít tuto vlastnost, je nutné získat nebo vytvořit vlastní aktivitu, která tuto funkci poskytuje.

Zpět na začátek

Aktivita DownloadFile

Ignorujte aktivitu DownloadFile.Aktivita DownloadFiles představuje nejjednodušší způsob, jak stáhnout jeden nebo více souborů.

Najít soubory (aktivita FindMatchingFiles)

Aktivitu FindMatchingFiles lze použít k vyhledání souborů.Kritérium hledání zadejte jako hodnotu vlastnosti MatchPattern (String).V této vlastnosti lze zadat argument, který obsahuje následující prvky:

  • Syntaxe podporovaná argumentem searchPattern metody DirectoryGetFiles(String, String).

  • Zadejte **, chcete-li určit rekurzivní vyhledávání.Příklad:

    • Chcete-li ve zdrojovém adresáři vyhledat textové soubory, lze do vlastnosti MatchPattern zadat hodnotu podobnou následující: String.Format("{0}\**\*.txt", SourcesDirectory).

    • Chcete-li ve zdrojovém adresáři a jeho jednom nebo více podadresářích vyhledat textové soubory, které se nazývají txtfiles, lze do vlastnosti MatchPattern zadat hodnotu podobnou následující: String.Format("{0}\**\txtfiles\*.txt", SourcesDirectory).

Výsledek operace se shromáždí ve vlastnosti Výsledek (IEnumerable<String>).

Zápis varování, chyb, zpráv a dalších dat do protokolu sestavení

WriteCustomSummaryInformation

Aktivitu WriteCustomSummaryInformation lze použít k zápisu zprávy do souhrnu sestavení, které se uživatelům zobrazí v okně výsledků sestavení.

Vlastnosti argumentu WriteCustomSummaryInformation

  • Zpráva (String): Je nutné zadat zprávu, kterou chcete zobrazit v souhrnu sestavení.

    Zpráva může obsahovat hypertextové odkazy ve zprávě pomocí jedné z následujících syntaxí:

    [link text](url)
    [link text] (url)
    

    Příklad:

    For the latest operation status, see [Fabrikam Fiber Ops] (http://intranet.fabrikam.com/ops/status).
    
  • SectionDisplayName (String): Je nutné zadat název oddílu, ve kterém chcete zprávu zobrazit.Pokud více instancí aktivity WriteCustomSummaryInformation se stejnou hodnotou SectionKey určuje jiné hodnoty SectionDisplayName, systém použije hodnotu SectionDisplayName první instance v šabloně procesu sestavení.

  • SectionKey (String): Je nutné zadat identifikátor názvu oddílu, ve kterém chcete zprávu zobrazit.Zadaná hodnota musí splňovat pravidla popsaná v NameProperty.

    Pokud například implementujete dvě instance WriteCustomSummaryInformation s hodnotou SectionKey nastavenou na “MySection”, při zpracování sestavení se obě zprávy zobrazí ve stejné části shrnutí sestavení.

  • SectionPriority (Int32): Lze určit prioritu části, která určuje relativní umístění oddílu v souhrnu sestavení.Čím nižší hodnota, tím výše se oddíl zobrazí v souhrnu sestavení.Pokud více instancí aktivity WriteCustomSummaryInformation se stejnou hodnotou SectionKey určuje jinou hodnotu SectionPriority, systém použije hodnotu SectionPriority první instance v šabloně procesu sestavení.

Zpět na začátek

Aktivita WriteBuildMessage

Aktivitu WriteBuildMessage lze použít k zápisu informačních zpráv do protokolu sestavení.Zprávu je nutné zadat jako hodnotu vlastnosti Zpráva (String).Lze také určit důležitost zprávy pomocí úpravy hodnoty vlastnosti Důležitost (BuildMessageImportance).

Tip

  • Uživatelé procesu sestavení mohou spoléhat na filtrování podrobností tak, aby se snížilo přetížení informacemi, které je nutné zobrazit, a daty, která se ukládají do datového skladu.Toto filtrování lze zefektivnit pomocí promyšleného a konzistentního přístupu k nastavení vlastnosti Důležitost vašich zpráv sestavení.Další informace naleznete v tématu Správa informací o sestavení a určení podrobností.

  • Používáte-li výchozí nastavení, zprávy nebudou do protokolu sestavení zapsány.Chcete-li vyřešit tento problém, proveďte následující kroky:

    • Nastavte vlastnost DůležitostWriteBuildMessage na hodnotu Microsoft.TeamFoundation.Build.Client.BuildMessageImportance.High.

    • Na kartě Proces definice sestavení nastavte parametr procesu Podrobnost protokolování na hodnotu Detailed nebo Diagnostic.

Aktivita WriteBuildWarning

Aktivitu WriteBuildWarning lze použít k zápisu zprávy upozornění do protokolu sestavení.Varování se v okně výsledků sestavení zobrazí se žlutým vykřičníkem.Zprávu je nutné zadat jako hodnotu vlastnosti Zpráva (String).

Vaše upozornění sestavení jsou zaznamenávána pouze v případě, že váš tým nastaví podrobnost na hodnotu minimální nebo vyšší.Další informace naleznete v tématu Správa informací o sestavení a určení podrobností.

Aktivita WriteBuildError

Aktivitu WriteBuildError lze použít k zápisu chybové zprávy sestavení do protokolu sestavení.Chyby se v okně výsledků sestavení zobrazí s červeným vykřičníkem.Při zápisu chyby do protokolu sestavení je sestavení klasifikováno nejlépe jako Partially Succeeded.Zprávu je nutné zadat jako hodnotu vlastnosti Zpráva (String).

Chyby se protokolují vždy bez ohledu na nastavení podrobnosti.Další informace naleznete v tématu Správa informací o sestavení a určení podrobností.

Aktivita WriteBuildTestError

Aktivitu WriteBuildTestError lze použít k zápisu chybové zprávy testu do protokolu sestavení.Chyby se v okně výsledků sestavení zobrazí s červeným vykřičníkem.Při zápisu chyby do protokolu sestavení je sestavení klasifikováno nejlépe jako Partially Succeeded.Zprávu je nutné zadat jako hodnotu vlastnosti Zpráva (String).

Chyby se protokolují vždy bez ohledu na nastavení podrobnosti.Další informace naleznete v tématu Správa informací o sestavení a určení podrobností.

Aktivita WriteBuildInformation&lt;T&gt;

Aktivitu WriteBuildInformation<T> lze použít k vložení objektu do protokolu sestavení.Když uživatel zobrazí protokol v okně výsledků sestavení, je objekt vykreslen pomocí reflexe.

Vlastnosti argumentu WriteBuildInformation<T>

  • Hodnota (Object): Je nutné zadat objekt, který chcete vložit do protokolu sestavení.Aby váš objekt mohl být vykreslen v okně výsledků sestavení, musí implementovat rozhraní IBuildInformationNode a mít vlastnost Type nastavenu na jednu z následujících hodnot InformationTypes:

    • ActivityProperties

    • ActivityTracking

    • AgentScopeActivityTracking

    • BuildError

    • BuildMessage

    • BuildProject

    • BuildStep

    • BuildWarning

    • ExternalLink

    • OpenedWorkItem

  • ParentToBuildDetail: Určením hodnoty False lze nadřazený objekt tohoto objektu učinit nadřazeným objektem této aktivity, nebo lze zadat hodnotu True a učinit tak nadřazeným objektem objekt IBuildDetail.

    Jedním efektem této vlastnosti je způsob zobrazení informací v okně výsledků sestavení.Pokud zadáte hodnotu False, bude informace odsazena a zarovnána s výstupem z jiných aktivit, které jsou před aktivitou a po aktivitě WriteBuildInformation<T> a jsou na stejné úrovni.Pokud zadáte hodnotu True, informace nebude odsazena.

Zpět na začátek

Zápis metadat do datového skladu

Metadata o sestavení lze zapsat do datového skladu:

  • Zápis čísla sestavení (aktivita UpdateBuildNumber)

  • Zápis klíčových datových bodů o sestavení (aktivita SetBuildProperties)

Tip

Pokud tyto aktivity nepodporují metadata, která chcete zapsat, lze použít aktivitu GetBuildDetail k získání odkazu na objekt IBuildDetail a poté data tomuto objektu pomocí této reference přiřadit přímo.

Zápis čísla sestavení (aktivita UpdateBuildNumber)

Aktivitu UpdateBuildNumber lze použít k nastavení čísla (nebo názvu) sestavení.Tato aktivita provádí následující kroky:

  1. Vytvoří číslo sestavení založené na výrazu, který určuje formát čísla sestavení.Proces sestavení obvykle přijímá tento výraz z argumentu pracovního postupu, který je poskytnut pomocí parametru na kartě Proces definice sestavení.

  2. Nastaví číslo sestavení (nebo název) zápisem výsledné hodnoty do vlastnosti BuildNumber.

VlastnostUpdateBuildNumber Result (String)

Výsledek: Vrací novou hodnotu BuildNumber.

Vlastnosti UpdateBuildNumber

Zpět na začátek

Zápis klíčových datových bodů o sestavení (aktivita SetBuildProperties)

Aktivitu SetBuildProperties lze použít k zápisu klíčových datových bodů do objektu IBuildDetail, který spravuje úložiště dat o jednotlivých sestaveních v datovém skladu.Velká část těchto dat se zobrazí uživateli v okně výsledků sestavení.

Vlastnosti SetBuildProperties

  • PropertiesToSet: Je nutné zaškrtnout políčka názvů vlastností, které chcete nastavit.

  • BuildNumber (String): Lze nastavit hodnotu vlastnosti BuildNumber sestavení, kterou si lze představit jako název sestavení.

    Tip

    Pokud chcete tuto hodnotu nastavit na základě nastavení specifikovaného uživatelem na kartě Proces definice sestavení, je vhodné namísto této vlastnosti použít aktivitu UpdateBuildNumber.

  • CompilationStatus (BuildPhaseStatus): Lze nastavit stav kompilace (CompilationStatus). (Aktivita MSBuild nastaví tuto hodnotu automaticky.)

  • DropLocation (String): Odkládací složku lze zaznamenat ve vlastnosti DropLocation.

    [!POZNÁMKA]

    Pokud tuto vlastnost nastavíte, ve skutečnosti odkládací složku nevytvoříte.Místo toho lze tuto vlastnost použít k uložení umístění odkládací složky, kterou obvykle vytvoříte pomocí aktivity CreateDirectory, do datového skladu.

  • KeepForever (Boolean): Vlastnost KeepForever lze nastavit na hodnotu True, pokud chcete obejít nastavení definice sestavení na kartě Zásada uchovávání informací a zachovat dokončená sestavení neomezeně dlouho.

  • LabelName (String): Vlastnost LabelName lze nastavit k zaznamenaní popisku, který se používá k označení tohoto sestavení na souborech zdrojového kódu ve správě verzí.Tuto vlastnost nastavíte obvykle tak, aby odpovídala hodnotě vlastnosti Název aktivity LabelWorkspace.

    Důležitá poznámkaDůležité

    Systém Team Foundation Build vyžaduje tato data k přidružení sady změn a pracovních položek k sestavení.Pokud tato data nezadáte, aktivita AssociateChangesetsAndWorkItems se nezdaří.

  • LogLocation (String): Vlastnost LogLocation lze použít k záznamu cesty souboru UNC do složky, kam proces sestavení umístí soubor protokolu.

    [!POZNÁMKA]

    Ve vašem vlastním procesu sestavení pravděpodobně nebude nutné tuto vlastnost použít.Tato vlastnost je primárně určena pro použití se souborem UpgradeTemplate.xaml pro podporu starších procesů sestavení.

  • Kvalita (String): Pomocí vlastnosti Quality lze zaznamenat kvalitu sestavení.

  • SourceGetVersion (String): Pomocí vlastnosti SourceGetVersion lze zaznamenat specifikaci verze, pro kterou jsou u tohoto sestavení načteny zdroje.

  • Stav (BuildStatus): Ve vlastnosti Status lze zaznamenat celkový stav sestavení.Například můžete pomocí této vlastnosti označit, zda bylo sestavení úspěšné nebo neúspěšné.

  • TestStatus (BuildPhaseStatus): Pomocí vlastnosti TestStatus lze zaznamenat celkový stav testů, které byly spuštěny v tomto sestavení.Například lze pomocí této vlastnosti určit, zda testy, které jste spustili v tomto sestavení, byly úspěšné nebo neúspěšné.

Zpět na začátek

Řízení procesu sestavení

Aktivity systému Team Foundation Build lze použít k řízení procesu sestavení následujícími způsoby:

  • Spuštění aktivit na agentu sestavení

  • Použití pojmenované struktury mutex k implementaci procesu bezpečného pro přístup z více vláken

  • Omezení částí procesu sestavení v závislosti na důvodu (aktivační procedura)

Spuštění aktivit na agentu sestavení (aktivita AgentScope)

Aktivitu AgentScope lze použít k uzavření částí procesu sestavení, které chcete spustit na agentu sestavení.

Vlastnosti argumentů aktivity AgentScope

  • Výběr agenta

    • MaxWaitTime (TimeSpan): Lze zadat maximální dobu, po kterou proces sestavení bude čekat na agenta sestavení, než bude k dispozici.Hodnotu lze zadat ve formátu hh:mm:ss.Sestavení se například nezdaří s chybou vypršení časového limitu, je-li zadána hodnota 01:30:45 a sestavení nebylo přiřazeno k sestavovacímu agentu ani po 1 hodině, 30 minutách a 45 sekundách.Chcete-li dát kontroleru sestavení neomezeně dlouhou dobu na nalezení sestavovacího agenta pro zpracování této definice sestavení, zadejte hodnotu 00:00:00.

      Důležitá poznámkaDůležité

      Zahlcení vaší fronty sestavení se lze vyhnout zadáním přiměřené nenulové hodnoty do vlastnosti MaxWaitTime

    • ReservationSpec (AgentReservationSpec): Lze omezit druh agenta sestavení, který bude zpracovávat aktivity, které tato aktivita obsahuje.Můžete například určit, že se pro zpracování aktivit uvnitř aktivity AgentScope použijí pouze agenty sestavení, které mají určitou značku.

  • Spuštění

    • MaxExecutionTime (TimeSpan): Lze zadat maximální množství času povoleného k dokončení pro tuto aktivitu AgentScope.Hodnotu lze zadat ve formátu hh:mm:ss.Sestavení se například nezdaří s chybou vypršení časového limitu, je-li zadána hodnota 04:30:15 a sestavovací agent nedokončí svou práci ani po 4 hodinách, 30 minutách a 15 sekundách.Chcete-li dát sestavovacímu agentu neomezeně dlouhou dobu na zpracování sestavení, zadejte hodnotu 00:00:00.

      Tip

      Zahlcení vaší fronty sestavení se lze vyhnout zadáním přiměřené nenulové hodnoty do vlastnosti MaxExecutionTime

  • Rozsah

    • DataToIgnore: Tuto vlastnost ignorujte.

Zpět na začátek

Použití pojmenované struktury mutex k implementaci procesu bezpečného pro přístup z více vláken (aktivita SharedResourceScope)

Aktivitu SharedResourceScope lze použít k implementaci pojmenované struktury mutex (vzájemné vyloučení) tak, aby se zajistilo, že segment uzavřený ve vašem procesu sestavení bude „bezpečný pro přístup z více vláken“.

Typické použití této aktivity je uzavření částí procesu sestavení, které musí přistupovat ke sdílenému prostředku, k němuž může přistupovat v jednom okamžiku pouze jeden proces.Například můžete chtít, aby vaše sestavení v postupném pořadí zapisovala do jednoho textového souboru ve sdílené složce.Chcete-li se ujistit, že tento druh procesu funguje správně, je nutné jej implementovat do aktivity SharedResourceScope.

Další příklad lze najít v šabloně DefaultTemplate.xaml, ve které je volání aktivity PublishSymbols vloženo v aktivitě SharedResourceScope:

  1. Sekvence (Sequence) >

  2. Spustit na agentu (AgentScope) >

  3. Zkuste zkompilovat, otestovat a asociovat sady změn a pracovní položky (TryCatch [Try]) >

  4. Sekvence (Sequence) >

  5. Získat ovlivněné testy, indexovat zdroje a publikovat symboly (Parallel) >

  6. If SourceAndSymbolServerSettings.IndexSources nebo SourceAndSymbolServerSettings.HasSymbolStorePath (If [Then]) >

  7. Indexovat zdroje a publikovat symboly pro aktivní sestavení (InvokeForReason) >

  8. If SourceAndSymbolServerSettings.HasSymbolStorePath (If [Then]) >

  9. Zkusit publikovat symboly (TryCatch [Try]) >

  10. Synchronizovat přístup k úložišti symbolů (SharedResourceScope) >

  11. Publikovat symboly (PublishSymbols)

Vlastnosti argumentu SharedResourceScope

  • ResourceName (String): Je nutné zadat hodnotu.Všechny instance aktivit SharedResourceScope jsou spouštěny postupně, pokud mají stejnou hodnotu ResourceName ve vaší kolekci týmových projektů (i když jsou v různých šablonách definice sestavení).

  • MaxExecutionTime (TimeSpan): Lze zadat maximální množství času povoleného k dokončení pro tuto aktivitu SharedResourceScope.Hodnotu lze zadat ve formátu hh:mm:ss.Sestavení se například nezdaří s chybou vypršení časového limitu, je-li zadána hodnota 04:30:15 a aktivita SharedResourceScope nebyla dokončena po 4 hodinách, 30 minutách a 15 sekundách.Zadejte hodnotu 00:00:00, chcete-li povolit neomezený čas ke zpracování aktivity SharedResourceScope.

    Tip

    Zahlcení vaší fronty sestavení se lze vyhnout zadáním přiměřené nenulové hodnoty do vlastnosti MaxExecutionTime

  • MaxWaitTime (TimeSpan): Lze zadat maximální dobu, po kterou proces sestavení počká ve frontě na zpracování aktivity SharedResourceScope.Hodnotu lze zadat ve formátu hh:mm:ss.Například sestavení se nezdaří s chybou vypršení časového limitu, zadáte-li hodnotu 01:30:45 a aktivita SharedResourceScope nebude dokončena do 1 hodiny, 30 minut a 45 sekund.Zadejte hodnotu 00:00:00, pokud chcete procesu sestavení povolit čekání ve frontě po neomezenou dobu.

    Tip

    Zahlcení vaší fronty sestavení se lze vyhnout zadáním přiměřené nenulové hodnoty do vlastnosti MaxWaitTime

Zpět na začátek

Omezení části procesu sestavení v závislosti na důvodu (aktivační procedura) (aktivita InvokeForReason)

Aktivitu InvokeForReason lze použít k uzavření segmentu procesu sestavení, který chcete spustit pouze v sestaveních spuštěných ze zvláštních důvodů.Důvody sestavení jsou obvykle nastaveny pomocí aktivační procedury, kterou uživatel vybere na kartě Aktivační procedura definice sestavení.Pomocí vlastnosti Důvod lze určit jednu nebo více hodnot důvodů, které chcete povolit. Další informace naleznete v tématu Určení aktivačních procedur a důvodů sestavení.

Zpět na začátek

Kompilace, testování a provádění dalších úloh

Aktivity systému Team Foundation Build lze použít ke kompilaci binárních souborů, spouštění testů a provádění dalších úloh:

  • Použití aktivity MSBuild ke kompilaci binárních souborů, spuštění analýzy kódu a provádění dalších úloh

  • Spouštění testů

  • Získání seznamu testů, které toto sestavení ovlivňují

Použití nástroje MSBuild ke kompilaci binárních souborů, spuštění analýzy kódu a provádění dalších úloh (aktivita MSBuild)

Aktivitu MSBuild lze použít ke kompilaci binárních souborů, spuštění analýzy kódu a využití dalších funkcí systému MSBuild.

Výsledek MSBuild

Žádná vlastnost této aktivity nevrací výsledek.Tato aktivita však nastaví vlastnost CompilationStatus na hodnotu Failed, pokud jsou zaznamenány chyby při kompilaci.

Vlastnosti argumentu MSBuild

  • AdditionalVCOverrides (String): Pokud nastavíte vlastnost GenerateVsPropsFile na hodnotu True, obsah této vlastnosti bude vložen do vytvořeného souboru .vsprops.

  • CommandLineArguments (String): Lze zadat argumenty příkazového řádku, které chcete předat systému MSBuild.

  • Konfigurace (String): Lze zadat konfiguraci, která má být vytvořena.Například: “debug” nebo “release”.

  • GenerateVSPropsFile (Boolean): Pokud je tato vlastnost nastavena na hodnotu True, systém MSBuild vygeneruje standardní soubor .vsprops, který předá projektům jazyka C++.Tento soubor bude obsahovat výstupní adresář projektů jazyka C++ a cokoli, co zadáte jako hodnotu vlastnosti AdditionalVCOverrides.

  • LogFile (String): Lze zadat název souboru protokolu, který systém MSBuild vytvoří.

  • LogFileDropLocation (String): Lze zadat úplnou cestu UNC k adresáři, kam chcete, aby systém MSBuild umístil soubor protokolu.

  • MaxProcesses (Int32): Lze zadat maximální počet procesů, které systém MSBuild vytvoří.

  • OutDir (String) Lze určit adresář, do kterého systém MSBuild umístí zkompilované binární soubory.Další informace naleznete v tématu Řízení, kde sestavení systému umístí do binární soubory.

  • Platforma (String): Lze určit platformu, pro kterou systém MSBuild provede sestavení.Například: “Any CPU”, “x86” nebo “x64”.

  • Projekt (String): Lze určit řešení nebo projekt kódu, který systém MSBuild sestaví.

  • ResponseFile (String): Lze určit soubor odpovědí, který systém MSBuild použije.

  • RunCodeAnalysis (CodeAnalysisOption): Lze určit, zda má být analýza kódu spuštěna vždy, nikdy nebo podle nastavení projektu.

  • Cíle (IEnumerable<String>): Lze určit cíle sestavení.

  • TargetsNotLogged (IEnumerable<String>): Lze určit cíle, pro které by neměly být události ProjectStarted protokolovány.

  • ToolPath (String): Lze zadat cestu k nástroji.

  • ToolPlatform (ToolPlatform): Lze určit platformu nástroje.Chcete-li zjistit platformu podle aktuálního operačního systému, vyberte hodnotu Microsoft.TeamFoundation.Build.Workflow.Activities.ToolPlatform.Auto.

  • Podrobnosti (BuildVerbosity): Lze určit podrobnost protokolování generovaného systémem MSBuild.

Další informace o mnoha možnostech systému MSBuild, na které vlastnosti systému MSBuild mají vliv, naleznete v tématu Referenční dokumentace pro použití nástroje MSBuild v příkazovém řádku.

Zpět na začátek

Spouštění testů

Testy lze spouštět buď pomocí aktivity RunTests, nebo pomocí aktivity MSTest .

Spouštění testů pomocí aktivity RunTests

Aktivitu RunTests lze použít ke spuštění testů nástroje Agile Test Runner.Pokud vaše sestavení kompiluje a testuje binární soubory s nekompatibilními platformami, je nutné tuto aktivitu spustit pro každou platformu samostatně.

Další informace naleznete v tématu Spouštění testů v procesu sestavení.

Základní vlastnosti aktivity RunTests

  • TestSources (IEnumerable<String>): Je nutné zadat seznam souborů sestavení obsahující testy, které chcete spustit.

  • ExecutionPlatform (ExecutionPlatformType) Lze zadat platformu binárních souborů, které chcete testovat.Další informace naleznete v tématu Nástroj Agile Test Runner.

  • ExecutionTimeout (Int32): Lze zadat maximální dobu, po kterou proces sestavení počká na dokončení testovacího běhu.Zadejte hodnotu 0, pokud chcete, aby aktivita RunTests při spuštění testů čekala neomezeně dlouho.

  • KeepAlive (Boolean): Tuto vlastnost lze nastavit na hodnotu True, pokud chcete, aby proces nástroje Agile Test Runner na agentu sestavení pokračoval v běhu po dokončení aktivity RunTests.

  • RunSettings (String): Není dokumentováno.

  • TestCaseFilter (String): Pomocí této vlastnosti lze spustit podmnožinu testovacích případů.Další informace naleznete v tématu Určení kritérií pro testovací běhy pomocí nástroje Test Runner sady Visual Studio.

  • UpdateFrequency (Int32): Není dokumentováno.

  • UpdateFrequencyTimeout (Int32): Není dokumentováno.

Vlastnosti publikování RunTests

Následující vlastnosti lze použít k publikování výsledků testů do kolekce týmových projektů:

  • PublishResults (Boolean): Tuto vlastnost je nutné nastavit na hodnotu True, pokud chcete publikovat výsledky testů.

  • Charakter (String): Lze určit charakter sestavení, proti kterému jste spustili testy, jejichž výsledky chcete publikovat.

  • Platforma (String): Lze určit platformu sestavení, proti které jste spustili testy, jejichž výsledky chcete publikovat.

  • RunName (String): Lze zadat název testovacího běhu.Zákazníci vašeho procesu sestavení uvidí tento název v okně souhrnu výsledků sestavení.Pokud název nezadáte, systém jej vytvoří automaticky.

Delegáty

  • OnTestCompleted: Není dokumentováno.

  • OnTestRunCompleted: Není dokumentováno.

Zpět na začátek

Spouštění testů pomocí aktivity MSTest

Tuto aktivitu lze použít ke spouštění testů pomocí příkazu MSTest.exe.

Základní vlastnosti aktivity MSTest

Nejprve je nutné rozhodnout, jak chcete spustit testy, a poté je nutné zadat hodnoty příslušných vlastností.

Vlastnosti filtrování MSTest

Následující vlastnosti lze použít k filtrování testů určených ke spuštění:

  • Kategorie (String): Testy lze filtrovat podle kategorií testu.Tato vlastnost odpovídá možnosti /category příkazu MSTest.exe.Další informace naleznete v tématu Možnosti příkazového řádku MSTest.exe (/category) a Definování kategorií testů pro seskupení testů.

  • MaxPriority (Int32): Lze určit maximální prioritu testů, které chcete spustit.Budou spuštěny pouze testy, jejichž priorita je menší nebo rovna této hodnotě.Je nutné zadat kladné celé číslo, které je větší nebo rovno hodnotě vlastnosti MinPriority, nebo musíte zadat −1, pokud chcete určit nejvyšší prioritu.

    Tip

    Pokud jste svým testům přiřadili priority, vlastnosti MinPriority a MaxPriority mohou být důležitým mechanismem, který může pomoci určit rovnováhu mezi důkladným testováním a rychlejšími sestaveními.

  • MinPriority (Int32): Lze určit minimální prioritu testů, které chcete spustit.Budou spuštěny pouze testy, jejichž priorita je větší nebo rovna této hodnotě.Je nutné zadat kladné celé číslo, které je menší nebo rovno hodnotě vlastnosti MaxPriority, nebo je nutné zadat −1, pokud nechcete určit minimální prioritu.

  • TestNames (IEnumerable<String>): Lze zadat názvy testů, které chcete spustit.Tato vlastnost odpovídá možnosti /test příkazu MSTest.exe.Další informace naleznete v tématu Možnosti příkazového řádku MSTest.exe (/test).

Vlastnosti publikování MSTest

Následující vlastnosti lze použít k publikování výsledků testů do kolekce týmových projektů:

  • Publikace (Boolean): Tuto vlastnost je nutné nastavit na hodnotu True, pokud chcete publikovat výsledky testů.

  • Charakter (String): Lze určit charakter sestavení, proti kterému jste spustili testy, jejichž výsledky chcete publikovat.Tato vlastnost odpovídá možnosti /flavor příkazu MSTest.exe.Další informace naleznete v tématu Možnosti příkazového řádku pro publikování výsledků testů.

  • Platforma (String): Lze určit platformu sestavení, proti které jste spustili testy, jejichž výsledky chcete publikovat.Tato vlastnost odpovídá možnosti /platform příkazu MSTest.exe.Další informace naleznete v tématu Možnosti příkazového řádku pro publikování výsledků testů.

  • TestConfigId (Int32): Lze zadat ID existující konfigurace správy testů a přidružit ji k testovacímu běhu, jehož výsledky chcete publikovat.Tato vlastnost odpovídá možnosti /testconfigid příkazu MSTest.exe.Další informace naleznete po spuštění příkazu MSTest /? pomocí příkazového řádku sady Visual Studio.

  • TestConfigName (String): Lze zadat název existující konfigurace správy testů a přidružit ji k testovacímu běhu, jehož výsledky chcete publikovat.Tato vlastnost odpovídá možnosti /testconfigname příkazu MSTest.exe.Další informace naleznete po spuštění příkazu MSTest /? pomocí příkazového řádku sady Visual Studio.

Další vlastnosti MSTest

  • CommandLineArguments (String): Informace o dalších možnostech, které lze zadat do příkazového řádku, naleznete v tématu MSTest.exe – možnosti příkazového řádku.

  • PathToResultsFilesRoot (String): Lze zadat kořenovou cestu adresáře umístěného na agentu sestavení, kde příkaz MSTest.exe umístí soubory s výsledky (soubory .trx).

  • ToolPath (String): Lze zadat cestu k adresáři obsahující verzi příkazu MSTest.exe, kterou chcete spustit.Pokud žádnou cestu nezadáte, systém Team Foundation Build automaticky určí cestu na základě dat v seznamech testů nebo testovacích kontejnerech.

Zpět na začátek

Získání seznamu testů, které sestavení ovlivňuje (aktivita GetImpactedTests)

Aktivitu GetImpactedTests lze použít k identifikování změn kódu v aktuálním sestavení a vytvoření seznamu testů, které jsou těmito změnami ovlivněny.Tato aktivita zapíše seznam ovlivněných testů do datového skladu tak, aby pomohla členům testovacího týmu zjistit, jaké testy by se měly spustit po dokončení sestavení.Další informace o použití těchto dat vaším týmem naleznete v tématu Které testy je třeba spustit od předchozího sestavení?.

[!POZNÁMKA]

Tato aktivita nemá vliv na sestavení s hlídaným vrácením se změnami ani na soukromá sestavení.

Požadované podmínky

Aktivita GetImpactedTests může fungovat pouze v případě, že jsou splněny následující podmínky:

  • Aktivita MSTest byla spuštěna pomocí souboru nastavení testu (určeného pomocí vlastnosti TestSettings ), který shromažďuje údaje o dopadu testu.Lze použít soubor Traceandtestimpact.testsettings, který je generován automaticky, nebo lze použít jiný soubor nastavení testu, ve kterém je zaškrtnuto políčko Dopad testu.Další informace naleznete v tématu Postupy: Shromáždění dat pro kontrolu, které testy mají být spuštěny po změně kódu.

  • Aktivita GetImpactedTests úspěšně identifikovala předchozí sestavení.Další informace naleznete v následujícím oddílu.

Jak aktivita GetImpactedTests identifikuje předchozí sestavení

Aktivita GetImpactedTests produkuje výsledky pomocí porovnání aktuálního sestavení a předchozího sestavení.Aktivita identifikuje předchozí sestavení pomocí následujícího postupu:

  1. Pokud zadáte vlastnost BaselineBuildDropLocation, sestavení, které vygenerovalo tyto binární soubory, je identifikováno jako předchozí sestavení.

  2. Pokud nezadáte hodnotu vlastnosti BaselineBuildDropLocation, aktivita identifikuje předchozí sestavení pomocí vyhledání nejnovějšího sestavení v datovém skladu, které splňuje všechna následující kritéria:

    • Sestavení má stejnou hodnotu vlastnosti BuildDefinitionUri jako aktuální sestavení.

    • Hodnota vlastnosti Status sestavení je buď Succeeded, nebo PartiallySucceeded.

    • Sestavení má nastavenu hodnotu vlastnosti DropLocation.

    • Sestavení není s hlídaným vrácením se změnami nebo soukromým sestavením.

Vlastnosti výsledku GetImpactedTests

  • CodeChanges (CodeChangeList): Vrátí seznam změn provedených v každé metodě v kódu mezi tímto a předchozím sestavením.Metody jsou analyzovány na úrovni jazyka MSIL.

  • ImpactedTests (TestList): Vrátí seznam testů, které byly ovlivněny změnami v kódu mezi předchozím a tímto sestavením.

Vlastnosti argumentu GetImpactedTests

  • Různé

    • Sestavení: Je nutné zadat objekt IBuildDetail sestavení.Aktivitu GetBuildDetail lze použít k získání odkazu na tento objekt.
  • Různé

    • Sestavení (IEnumerable<String>): Je nutné zadat seznam sestavení, která chcete prozkoumat touto aktivitou.Tato sestavení jsou obvykle sestavena v tomto sestavení.

    • AssociatedChangesets (IList<Changeset>): Lze zadat sady změn, které chcete přidružit k výsledkům testu dopadu.Obvykle budete chtít zadat sady změn, které sestavujete.Na tyto sady změn lze získat odkaz pomocí aktivity AssociateChangesetsAndWorkItems.

    • BinariesRoot (String): Je nutné zadat cestu k binárním souborům, na kterých vaše sestavení závisí.Tuto hodnotu lze získat pomocí aktivity GetBuildDirectory.

    • Pracovní prostor (Workspace): Je nutné zadat odkaz na pracovní prostor vašeho sestavení.Tento odkaz lze získat pomocí vlastnosti Výsledek aktivity CreateWorkspace.

    • BaselineBuildDropLocation (String): Lze zadat cestu k odkládací složce obsahující dokončené sestavení, které chcete aktivitou GetImpactedTests porovnat s aktuálním sestavením.Pokud tuto vlastnost nezadáte, pokusí se tato aktivita dotázat systému sestavení na předchozí sestavení.Další informace naleznete v tématu „Jak aktivita GetImpactedTests identifikuje předchozí sestavení“ výše v této části.

Zpět na začátek

Spuštění procesu (aktivita InvokeProcess)

Aktivitu InvokeProcess lze použít ke spuštění procesu (spuštění programu) na serveru sestavení.Tato činnost je v podstatě obálka nad typem Start.

Vlastnost Výsledek InvokeProcess (Int32)

Vrací ExitCode daného procesu.

Vlastnosti argumentů InvokeProcess

  • FileName (String): Je nutné zadat název souboru FileName procesu, který chcete spustit (programu, který chcete spustit).Například: %ProgramFiles%\ContosoBuildUtils\MarkBins.exe.

  • Argumenty (String): Lze zadat argumenty příkazového řádku (Arguments), které chcete předat procesu.

  • EnvironmentVariables (IDictionary<String,String>): Lze zadat další proměnné prostředí (EnvironmentVariables) a jejich hodnoty.

  • OutputEncoding (Encoding): Lze určit kódování, které je použito ke čtení výstupních (StandardOutputEncoding) a chybových datových proudů (RedirectStandardError).Výchozí hodnota je v mnoha případech nejlepší hodnotou této vlastnosti:

    System.Text.Encoding.GetEncoding(System.Globalization.CultureInfo.InstalledUICulture.TextInfo.OEMCodePage)
    
  • WorkingDirectory (String): Lze zadat pracovní adresář (WorkingDirectory), v němž chcete spustit proces.

    Můžete chtít například spustit nástroj MarkBins.exe proti zkompilovaným binárním souborům.Chcete-li zúžit rozsah, ve kterém je nástroj spuštěn, lze volat aktivitu GetBuildDirectory a výsledek vložit do této vlastnosti.

Zobrazení standardního a chybového výstupu procesu

  1. V aktivitě InvokeProcess dvakrát klikněte na možnost Zobrazit dvojitým kliknutím.

  2. Přetáhněte aktivitu WriteBuildMessage ze sady nástrojů tak, aby se objevila pod částí Zpracovat standardní výstup, a nastavte vlastnost Zpráva aktivity WriteBuildMessage na hodnotu stdOutput.

  3. Přetáhněte aktivitu WriteBuildError ze Sady nástrojů tak, aby se objevila pod částí Zpracovat standardní výstup, a nastavte vlastnost Zpráva aktivity WriteBuildMessage na hodnotu errOutput.

Práce se správou verzí

Aktivity systému Team Foundation Build lze použít k provedení následujících úkolů správy verzí:

  • Přidružení sad změn a pracovních položek k sestavením

  • Vrácení se změnami hlídaných změn

  • Vyhodnocení zásad vrácení se změnami

  • Popisování souborů ve správě verzí

Přidružení sad změn a pracovních položek k sestavení (aktivita AssociateChangesetsAndWorkItems)

Aktivitu AssociateChangesetsAndWorkItems lze použít k propojení každého dokončeného sestavení se všemi sadami změn, které byly přidány do kódu, a jejich přidruženými pracovními položkami.

Každá definice sestavení udržuje svůj vlastní záznam o tom, které sady změn a pracovní položky čekají na přiřazení k dalšímu dokončenému sestavení.Například sestavení A i sestavení B mohou provést sestavení sady změn číslo 382.Sestavení A je zařazeno do fronty a úspěšně dokončeno, ale sestavení B je zařazeno do fronty a selže.Sada změn číslo 382 je nyní propojena s úspěšně dokončeným sestavením A a s nezdařeným sestavením B. Sada změn 382 nebude propojena s dalším dokončeným sestavením A, ale bude propojena a dalším úspěšným sestavením B.

VlastnostVýsledek aktivity AssociateChangesetsAndWorkItems (IList<Changeset>)

Vrací sady změn, které byly přidruženy k sestavení.

Vlastnosti argumentu AssociateChangesetsAndWorkItems

  • CurrentLabel (String): Tuto vlastnost nechte prázdnou.

  • LastLabel (String): Tuto vlastnost nechte prázdnou.

  • UpdateWorkItems (Boolean): Tuto vlastnost lze nastavit na hodnotu True, pokud chcete naplnit pole Pevné v odpovídající pracovní položky s číslem sestavení.Jinak nastavte hodnotu False.

Zpět na začátek

Hlídané vrácení se změnami (aktivita CheckInGatedChanges)

Aktivitu CheckInGatedChanges lze použít k vrácení změn kódu, které spustily chráněné vrácení se změnami, do správy verzí.Tato aktivita rovněž přidruží sestavení k pracovním položkám, které jsou přidruženy k těmto sadám změn.

[!POZNÁMKA]

Aby fungovala správně, je nutné tuto aktivitu umístit za všechny implementace aktivit MSBuild a MSTest ve vaší šabloně.

VlastnostVýsledek aktivity CheckInGatedChanges (Changeset)

Vrátí sadu změn obsahující změny, které byly vráceny se změnami.

Vlastnosti argumentu CheckInGatedChanges

  • IgnoreErrors (Boolean): Nastavte tuto vlastnost na hodnotu False, chcete-li povolit vrácení souborů se změnami pouze tehdy, pokud mají obě vlastnosti CompilationStatus a TestStatus hodnotu Succeeded.Nastavte tuto vlastnost na hodnotu True, chcete-li povolit vrácení souborů se změnami bez ohledu na hodnoty těchto vlastností.

    [!POZNÁMKA]

    Aktivitu SetBuildProperties lze použít k nastavení vlastností CompilationStatus a TestStatus.

  • UpdateWorkItems (String): Nastavte tuto vlastnost na hodnotu True, pokud chcete naplnit pole Pevné v odpovídající pracovní položky číslem sestavení.Jinak ji nastavte na hodnotu False.

Zpět na začátek

Vyhodnocení zásad vrácení se změnami (aktivita EvaluateCheckInPolicies)

Aktivitu EvaluateCheckInPolicies lze použít ke spuštění zásad vrácení se změnami na serveru sestavení.Tato aktivita spustí zásady vrácení se změnami platné pro složky, které jsou určeny na kartě Pracovní prostor definice sestavení.Sestavení selže, pokud selžou zásady vrácení se změnami a důvod sestavení je buď CheckInShelveset (sestavení s hlídaným vrácením se změnami), nebo ValidateShelveset (soukromé sestavení).

Důležitá poznámkaDůležité

Zásady vrácení se změnami jsou vyhodnoceny na serveru sestavení, ne v klientském počítači vývojáře.

Nejefektivnějším využitím této aktivity je vynucení silnější kvality společným použitím se sestaveními s hlídaným vrácením se změnami.Používáte-li aktivitu tímto způsobem, uživateli je znemožněno obejít zásady vrácení se změnami.Tato aktivita je nejužitečnější pro následující typy zásad vrácení se změnami:

  • Vestavěné zásady vrácení se změnami Work Items

  • Vlastní zásady vrácení se změnami, které jsou určeny k vyhodnocení na serveru sestavení

Tato aktivita není užitečná pro vyhodnocení vestavěných zásad vrácení se změnami Builds nebo Code Analysis, protože lze tyto procesy spustit efektivněji přímo pomocí aktivit MSBuild a MSTest.

Další informace naleznete v následujících zdrojích:

Vlastnosti argumentu EvaluateCheckInPolicies

  • Pracovní prostor (Workspace): Je nutné zadat pracovní prostor, který chcete vyhodnotit.Ve většině případů byste tuto vlastnost měli nastavit na proměnnou inicializovanou ve vlastnosti Výsledek aktivity CreateWorkspace.Při vytváření procesu sestavení, který je založen na šabloně DefaultTemplate.xaml, je vhodné použít proměnnou pracovního prostoru Workspace.

Zpět na začátek

Popisování souborů ve správě verzí

Soubory lze označit pomocí aktivit systému Team Foundation Build:

  • Popis zdrojového kódu, který vytváříte

  • Popis souborů

Popis zdrojového kódu, který vytváříte (aktivita LabelWorkspace)

Soubory zdrojového kódu ve správě verzí byste měli popsat tak, aby váš tým mohl snadno identifikovat, která verze každého souboru je zahrnuta v daném dokončeném sestavení.Aktivitu LabelWorkspace lze použít k zahrnutí tohoto kroku do procesu sestavení.

Vlastnosti argumentu LabelWorkspace

  • Název (String): Je nutné zadat název popisku.

  • Podřízený prvek (LabelChildOption): Lze určit způsob zpracování položek, které již mají popisky odpovídající popisku, jenž jste určili.Tato vlastnost odpovídá možnosti /child příkazu tf label.

  • Pracovní prostor (Workspace): Je nutné zadat odkaz na pracovní prostor sestavení.Ve většině případů byste tuto vlastnost měli nastavit na proměnnou inicializovanou ve vlastnosti Výsledek aktivity CreateWorkspace.Při vytváření procesu sestavení, který je založen na šabloně DefaultTemplate.xaml, je vhodné použít proměnnou pracovního prostoru Workspace.

  • Komentář (String): Lze zadat komentář popisku.Tato vlastnost odpovídá možnosti /comment příkazu tf label.

  • Rozsah (String): Lze určit rozsah popisku.Tato vlastnost odpovídá argumentu @scope příkazu tf label.

Další informace o parametrech tf label naleznete v tématu Label Command (Team Foundation Version Control).

Zpět na začátek

Popis souborů (aktivita LabelSources)

Aktivitu LabelSources lze použít k popisu souborů ve správě verzí.

Tip

Sestavované soubory zdrojového kódu lze efektivněji popisovat, pokud použijete aktivitu LabelWorkspace.

Vlastnosti argumentu LabelSources

  • Položky (IEnumerable<String>): Je nutné určit položky, které chcete popisovat.Každý String je ekvivalentní argumentu itemspec příkazu tf label.

  • Název (String): Je nutné zadat název popisku.

  • Rozsah (String): Je nutné zadat rozsah popisku.Tato vlastnost odpovídá argumentu @scope příkazu tf label.

  • Rekurze (RecursionType): Lze zadat hodnotu Microsoft.TeamFoundation.VersionControl.Client.RecursionType.Full, pokud chcete označit všechny soubory v hierarchii adresářů.Jinak lze zadat Microsoft.TeamFoundation.VersionControl.Client.RecursionType.OneLevel.

  • Verze (String): Je nutné zadat verzi položek, které chcete popisovat.Tato vlastnost odpovídá možnosti /version příkazu tf label.

  • Podřízený prvek (LabelChildOption): Lze určit způsob zpracování položek, které již mají popisky odpovídající zadanému popisku.Tato vlastnost odpovídá možnosti /child příkazu tf label.

  • Komentář (String): Lze zadat komentář popisku.Tato vlastnost odpovídá možnosti /comment příkazu tf label.

Další informace o parametrech tf label naleznete v tématu Label Command (Team Foundation Version Control).

Zpět na začátek

Získání seznamu sad odložených změn (aktivita QueryShelvesets)

Aktivitu QueryShelvesets lze použít k získání seznamu sad odložených změn, které splňují vaše kritéria.Poté lze použít aktivitu TfUnshelve k získání obsahu jakékoli sady odložených změn.

Výsledek QueryShelvesets (IList<Shelveset>)

Vlastnosti argumentu QueryShelvesets

Aktivita TfGet

Tato aktivita obaluje příkaz Příkaz Načíst.

Aktivita TfResolve

Tato aktivita obaluje příkaz Resolve Command.

Aktivita TfShelve

Tato aktivita obaluje příkaz Příkaz shelve.

Aktivita TfUndo

Tato aktivita obaluje příkaz Příkaz Vrátit zpět.

Aktivita TfUnshelve

Tato aktivita obaluje příkaz Příkaz unshelve.

Aktivita TfWorkfold

Tato aktivita obaluje příkaz Workfold Command.

Práce s pracovními položkami

Pomocí aktivit systému Team Foundation Build lze pracovat s pracovními položkami:

  • Přidružení sad změn a pracovních položek k sestavením

  • Vytvoření pracovní položky

Vytvoření pracovní položky (aktivita OpenWorkItem)

Aktivitu OpenWorkItem lze použít k vytvoření pracovní položky.

Vlastnost Výsledek OpenWorkItem (WorkItem)

Vrací novou pracovní položku.

Vlastnosti argumentu OpenWorkItem

  • AssignedTo (String): Je nutné určit osobu, které chcete pracovní položku přiřadit.

  • Název (String): Je nutné zadat název pracovní položky.

  • Typ (String): Je nutné určit typ pracovní položky.Obvyklé hodnoty Typ zahrnují následující příklady: “Bug”, “Issue” a “Task”.

  • Komentář (String): Lze přidat komentář do historie pracovní položky.

  • CustomFields (IDictionary<String,String>): Lze zadat hodnotu jednoho nebo více jiných polí pracovní položky.

Zpět na začátek

Práce s daty symbolů

S daty symbolů lze pracovat pomocí dvou aktivit systému Team Foundation Build: IndexSources a PublishSymbols.

Typické použití těchto aktivit je povolení ladění pomocí technologie IntelliTrace.Pokud chcete povolit ladění pomocí technologie IntelliTrace, měli byste nejprve volat aktivitu IndexSources tak, aby připravila vaše data symbolů, a poté byste měli volat aktivitu PublishSymbols, která data publikuje do úložiště symbolů SymStore.

Další informace o ladění pomocí technologie IntelliTrace naleznete v tématu Ladění aplikace pomocí zaznamenávání provádění kódu s použitím technologie IntelliTrace.

Vložení cesty a verze správy verzí do dat symbolů ve vašich souborech PDB (aktivita IndexSources)

Aktivitu IndexSources lze použít k vložení cest a verzí správy verzí do dat symbolů ve vašich souborech .pdb.

Vlastnosti argumentu IndexSources

  • FileList (IEnumerable<String>): Je nutné zadat úplnou cestu a název každého souboru symbolů.Aktivitu FindMatchingFiles lze použít k zadání tohoto argumentu.

    Lze použít ** k určení rekurzivního vyhledávání.Například lze volat aktivitu FindMatchingFiles s následující hodnotou vlastnosti MatchPattern: String.Format("{0}\**\*.pdb", BinariesDirectory).

Zpět na začátek

Publikování symbolů do úložiště symbolů SymStore (aktivita PublishSymbols)

Aktivitu PublishSymbols lze použít k publikování dat symbolů ve vašich souborech .pdb do úložiště symbolů SymStore.Tato činnost je v podstatě obálka nad typem SymStore.exe.Informace o úložištích symbolů SymStore a o tom, jak je připravit, naleznete v tématu Indexování a publikování dat symbolů.

Důležitá poznámkaDůležité

Pokud se souběžná sestavení pokusí publikovat symboly do stejného sdíleného umístění, mohou být data poškozena.Ke snížení rizika byste měli volat tuto aktivitu pouze uvnitř aktivity SharedResourceScope.

Vlastnost Výsledek PublishSymbols (String)

Vrací ID transakce, které vrací příkaz SymStore.exe.

Vlastnosti argumentu PublishSymbols

  • FileList (IEnumerable<String>): Je nutné zadat úplnou cestu a název každého souboru symbolů.Aktivitu FindMatchingFiles lze použít k zadání tohoto argumentu.

    Například lze volat aktivitu FindMatchingFiles s následující hodnotou vlastnosti MatchPattern: String.Format("{0}\**\*.pdb", BinariesDirectory).

  • StorePath (String): Je nutné zadat souborovou cestu UNC do kořenové složky úložiště symbolů SymStore.

  • CommandLineArguments (String): Další informace o argumentech, které lze předat příkazu SymStore.exe, naleznete v tématu Možnosti příkazu SymStore.

  • Komentáře (String): Lze zadat komentáře transakce, které jsou zaznamenány do souboru historie transakcí v úložišti symbolů.Tato vlastnost odpovídá parametru /c Comment příkazu SymStore.exe.Další informace naleznete v tématu Možnosti příkazového řádku SymStore.

  • ProductName (String): Lze zadat název produktu, který je zaznamenán v souboru historie transakcí v úložišti symbolů.Tuto vlastnost lze nastavit například na hodnotu názvu definice sestavení (Name), který lze získat z vlastnosti BuildDefinition voláním aktivity GetBuildDetail.Tato vlastnost odpovídá parametru /t Product příkazu SymStore.exe.Další informace naleznete v tématu Možnosti příkazového řádku SymStore.

  • StoreCompressed (Boolean): Tuto hodnotu lze nastavit na True, chcete-li uložit soubory v úložišti symbolů jako komprimované soubory.Jinak budou soubory uloženy nekomprimované.Tato vlastnost odpovídá parametru /compress příkazu SymStore.exe.Další informace naleznete v tématu Možnosti příkazového řádku SymStore.

  • Verze (String): Tuto vlastnost lze například nastavit na číslo sestavení (BuildNumber), které lze získat voláním aktivity GetBuildDetail.Tato vlastnost odpovídá parametru /v Version příkazu SymStore.exe.Další informace naleznete v tématu Možnosti příkazového řádku SymStore.

Zpět na začátek

Získání odkazů na užitečné objekty

Pomocí aktivit systému Team Foundation Build lze získat odkazy na užitečné objekty.

Získání odkazu na objekt pro kolekci týmových projektů (aktivita GetTeamProjectCollection)

Vlastnost Výsledek aktivity GetTeamProjectCollection lze použít k získání odkazu na objekt TfsTeamProjectCollection.Tento počáteční objekt je důležitý. Lze jej například použít k připojení k aplikační vrstvě serveru systému Team Foundation.

Získání odkazu na objekt IBuildAgent (aktivita GetBuildAgent)

Pomocí aktivity GetBuildAgent lze získat odkaz na objekt IBuildAgent z její vlastnosti Výsledek.Tuto aktivitu lze použít pouze v rámci aktivity AgentScope.

Získání odkazu na objekt IBuildDetail (aktivita GetBuildDetail)

Pomocí aktivity GetBuildDetail lze získat odkaz na objekt IBuildDetail z její vlastnosti Výsledek.Tento objekt lze použít k získání, a v některých případech nastavení, údajů o aktuálním sestavení.

Zpět na začátek

Získání odkazu na objekt BuildEnvironment (aktivita GetBuildEnvironment)

Pomocí aktivity GetBuildEnvironment lze získat odkaz na objekt BuildEnvironment prostřednictvím její vlastnosti Výsledek.Tuto vlastnost lze obvykle použít k vykonání následujících úloh:

  • Pomocí objektu Environment lze zjistit, zda je aktuální segment pracovního postupu spuštěn na kontroléru sestavení nebo na agentu sestavení.

  • Objekt CustomAssemblyPath lze na agentu sestavení použít k získání cesty k sestavením, která obsahují vlastní aktivity.

Zpět na začátek

Aktivity, které nejsou ve vlastním procesu sestavení určeny pro úpravy

Některé aktivity ve vlastním procesu sestavení nejsou určeny pro úpravy.

ApproveRequestForCheckIn

Tuto aktivitu ignorujte.

Zpět na začátek

Aktivita CreateWorkspace

Tuto aktivitu ignorujte.

Zpět na začátek

DeleteWorkspace

Tuto aktivitu ignorujte.

Zpět na začátek

GenerateRunSettings

Tuto aktivitu ignorujte.

Zpět na začátek

GetApprovedRequests

Tuto aktivitu ignorujte.

Zpět na začátek

GetPendingChanges

Tuto aktivitu ignorujte.

Zpět na začátek

GetRejectedRequests

Tuto aktivitu ignorujte.

Zpět na začátek

GetReshelvedShelveset

Tuto aktivitu ignorujte.

Zpět na začátek

GetShelvedChanges

Tuto aktivitu ignorujte.

Zpět na začátek

GetWorkspace

Tuto aktivitu ignorujte.

Zpět na začátek

ParseWorkspaceSpec

Tuto aktivitu ignorujte.

Zpět na začátek

RejectRequestFromCheckIn

Tuto aktivitu ignorujte.

Zpět na začátek

RetryRequest

Tuto aktivitu ignorujte.

Zpět na začátek

RetryRequests

Tuto aktivitu ignorujte.

Zpět na začátek

RevertWorkspace

Tuto aktivitu ignorujte.

Zpět na začátek

RunOnce

V aktuální verzi není dokumentováno.

SyncWorkspace

Tuto aktivitu ignorujte.

Zpět na začátek

SynchronizeRequests

Tuto aktivitu ignorujte.

Zpět na začátek

Aktivita TfsBuild

Tuto aktivitu ignorujte.

Zpět na začátek

TfQueryConflicts

Tuto aktivitu ignorujte.

Zpět na začátek

Viz také

Koncepty

Použití výchozí šablony pro proces sestavení

Nasazení a konfigurace kontroleru sestavení

Nasazení a konfigurace agentů sestavení

Další zdroje

Návrhář postupu provádění Visual Studio 2010

Windows Workflow Foundation

Referenční dokumentace nástroje MSBuild

Zobrazení výsledků sestavení