Udostępnij za pośrednictwem


Działania Team Foundation Build

Działania Team Foundation Build są podstawowymi składnikami procesu kompilacji w systemie Team Foundation Build.Działań tych można użyć do utworzenia niestandardowego procesu kompilacji, aby spełnić wymagania zespołu, takie jak działanie zgodnie z logiką niestandardową lub wykonywanie wyspecjalizowanych zadań.

W większości przypadków najlepszym sposobem tworzenia niestandardowego szablonu procesu kompilacji jest bazowanie na Szablonie domyślnym (DefaultTemplate.xaml).W ten sposób można korzystać z użytecznej funkcjonalności utworzonej podczas dostosowywania określonych części do spełnienia wymagań.Inną zaletą tego podejścia jest to, że pokazane są szczególne i praktyczne przykłady korzystania z działań, które opisano w tym temacie.Aby uzyskać informacje o sposobie tworzenia szablonu procesu kompilacji, zobacz sekcję Dostosowywanie szablonu procesu kompilacji.

Ważna uwagaWażne

Utwórz niestandardowy proces kompilacji tylko wtedy, gdy konieczne jest spełnienie wyspecjalizowanych wymagań.Możesz użyć DefaultTemplate.xaml, aby szybko zdefiniować proces kompilacji, który spełnia wiele typowych wymagań.Aby uzyskać więcej informacji, zobacz Użycie szablonów domyślnych w procesie kompilacji.

W tym temacie:

  • Wymagane uprawnienia

  • Ukierunkowane na cel odwołanie do działań

  • Alfabetyczne odwołanie do działań

Wymagane uprawnienia

Aby wykonać procedury, które używają działań Team Foundation Build, należy ustawić następujący zbiór uprawnień na Zezwalaj:

  • Edytuj definicję kompilacji

  • Wyewidencjonuj i Zaewidencjonuj dla odpowiednich katalogów kontroli wersji (takich jak podkatalog BuildProcessTemplates projektu zespołowego)

  • Dodawaj do kolejki kompilacje

Aby uzyskać więcej informacji, zobacz Uprawnienia serwera programu Team Foundation Server.

Ukierunkowane na cel odwołanie do działań

  • Wykonaj podstawowe zadania

    • Pobierz wartości zmiennych środowiskowych

    • Testuj zmienne dla wartości null

    • Pobierz ścieżki do plików w obszarze roboczym

    • Pracuj z katalogami

    • Pobierz ścieżkę do katalogu roboczego agenta kompilacji

    • Pobierz pliki, których nie ma w obszarze roboczym

    • Znajdź pliki

    • Zapisz ostrzeżenia, błędy, komunikaty i inne dane w dzienniku kompilacji

    • Zapisz metadane kompilacji do magazynu danych

  • Kontroluj proces kompilacji

    • Uruchom działania w agencie kompilacji

    • Użyj struktury mutex do implementowania procesu bezpiecznego wątkowo

    • Ogranicz sekcje procesu kompilacji oparte na przyczynie (wyzwalacz)

  • Kompiluj, testuj i wykonuj inne zadania

    • Użyj programu MSBuild do kompilowania plików binarnych, uruchamiania analizy kodu i wykonywania innych zadań

    • Uruchom testy

    • Pobierz listę testów, na które wpływa kompilacja

    • Rozpocznij proces

  • Pracuj z kontrolą wersji

    • Skojarz grupę zmian i elementy robocze z kompilacją

    • Zaewidencjonuj zmiany warunkowe

    • Oceń zasady ewidencjonowania

    • Oznacz pliki w kontroli wersji

    • Pobierz listę zestawów odłożonych

    • TfGet

    • TfResolve

    • TfShelve

    • TfUndo

    • TfUnshelve

    • TfWorkfold

  • Pracuj z elementami roboczymi

    • Skojarz grupę zmian i elementy robocze z kompilacją

    • Utwórz element pracy

  • Pracuj z danymi symbolicznymi

    • Osadź wersje i ścieżki kontroli wersji w danych symbolicznych w plikach .pdb

    • Publikuj symbole do magazynu symboli SymStore

  • Pobierz odwołania do przydatnych obiektów

    • Pobierz odwołanie do obiektu dla kolekcji projektu zespołowego

    • Pobierz odwołanie do obiektu dla agenta kompilacji

    • Pobierz odwołanie do obiektu dla szczegółów kompilacji

    • Pobierz odwołanie do obiektu dla środowiska kompilacji

Alfabetyczne odwołanie do działań

  • 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

Wykonaj podstawowe zadania

Możesz użyć działań Team Foundation Build do wykonywania następujących zadań:

  • Pobierz wartości zmiennych środowiskowych

  • Pobierz ścieżki do plików w obszarze roboczym

  • Pracuj z katalogami

  • Pobierz ścieżkę do katalogu roboczego agenta kompilacji

  • Pobierz pliki, których nie ma w obszarze roboczym

  • Znajdź pliki

  • Zapisz ostrzeżenia, błędy, komunikaty i inne dane w dzienniku kompilacji

  • Zapisz metadane dotyczące kompilacji

Pobierz wartości zmiennych środowiskowych (działanie ExpandEnvironmentVariables)

Użyj działania ExpandEnvironmentVariables do rozpoznania jednej lub większej liczby zmiennych środowiskowych na serwerze kompilacji.Zmienne środowiskowe są odczytywane w agencie kompilacji, jeśli to działanie jest wewnątrz sekwencji AgentScope; w przeciwnym razie są odczytywane na kontrolerze kompilacji.

PoradaPorada

Dowiedz się, jakie przydatne bity danych można uzyskać ze zmiennych środowiskowych TF_BUILD.Można na przykład uzyskać katalog plików binarnych. Z tego katalogu proces kompilacji kopiuje pliki wyjściowe do tymczasowej lokalizacji.Zobacz sekcję Zmienne środowiskowe Team Foundation Build.

WłaściwośćWynik ExpandEnvironmentVariables (String)

Zwraca wynik operacji.Na przykład: The temp directory on machine BLDSERV3 is C:\windows\SERVIC~2\NETWOR~1\AppData\Local\Temp.

Właściwości argumentów ExpandEnvironmentVariables

  • Wejście (String): należy określić ciąg zawierający zmienne środowiskowe, które mają być rozpoznane.Każdą zmienną środowiskową należy sformatować, określając właściwość MSBuild zamiast używania notacji symbolu procentu systemu Windows.Na przykład: "The temporary directory on machine $(COMPUTERNAME) is $(TEMP)."

  • AdditionalVariables (IDictionary<String,String>): można określić obiekt IDictionary, który zawiera dowolne dodatkowe zmienne (jako klucze), dla których mają być rozpoznane odpowiadające im wartości.

Powrót do początku

Testuj zmienne dla wartości null

IsNotNull&lt;T&gt;

Użyj działania IsNotNull<T>, aby sprawdzić, czy wyrażenie języka Visual Basic, takie jak używana zmienna, podane we właściwości Wartość (Object) nie ma wartości Null.Wynik testu jest zwracany w Wyniku właściwości Boolean.

IsNull&lt;T&gt;

Użyj działania IsNull<T>, aby sprawdzić, czy wyrażenie języka Visual Basic, takie jak używana zmienna, podane we właściwości Wartość (Object) nie ma wartości Null.Wynik testu jest zwracany w Wyniku właściwości Boolean.

Pobierz ścieżki do plików w obszarze roboczym

Każda kompilacja ma obszar roboczy kontroli wersji zdefiniowany na zakładce Obszar roboczy definicji kompilacji.Obszar roboczy zawiera kompilację z dostępem do plików kodu źródłowego i innych plików, których potrzebuje z systemu kontroli wersji.Program Team Foundation Build zawiera dwa działania, których można użyć do pracy z plikami w obszarze roboczym kompilacji: ConvertWorkspaceItemi ConvertWorkspaceItems.

Aby uzyskać więcej informacji dotyczących obszarów roboczych kompilacji, zobacz Tworzenie lub edycja definicji kompilacji.

PoradaPorada

Aby uzyskać szczegółowe wskazówki krok po kroku dotyczące sposobu korzystania z działania ConvertWorkspaceItem w typowym scenariuszu, zobacz Kontroli, gdzie Build System umieszcza swoje pliki binarne.

Pobieranie ścieżki do pliku w obszarze roboczym (działanie ConvertWorkspaceItem)

Użyj działania ConvertWorkspaceItem, aby przekonwertować ścieżkę serwera do ścieżki lokalnej agenta kompilacji lub przekonwertować ścieżkę lokalną agenta kompilacji do ścieżki serwera.

WłaściwośćWynik ConvertWorkspaceItem (String)

Zwraca ścieżkę skonwertowaną.

Właściwości argumentów ConvertWorkspaceItem

  • Wejście (String): należy podać wartość ścieżki, która ma być skonwertowana.

  • Obszar roboczy (Workspace): należy podać odwołanie do Workspace zawierającego plik.W większości przypadków należy ustawić tę właściwość na zmienną inicjowaną we właściwości Wynik działania CreateWorkspace.Podczas tworzenia procesu kompilacji opartego na DefaultTemplate.xaml należy prawdopodobnie używać zmiennej Workspace.

  • Kierunek

    • Konwertuj ścieżkę serwera do ścieżki lokalnej: we właściwości Kierunek wybierz ServerToLocal, a następnie określ ścieżkę do pliku na serwerze we właściwości Wejście (String).

      Na przykład zespół może przechowywać wspólne narzędzia w następującym katalogu: $/OurTeam/BuildProcess/Util.Można utworzyć niestandardowy proces kompilacji, który uruchamia narzędzie ScanBinaries.exe po skompilowaniu plików binarnych.Jeśli $/OurTeam/BuildProcess/Util jest mapowany na kartę Obszar roboczy definicji kompilacji, można określić $/OurTeam/BuildProcess/Util/ScanBinaries.exe we właściwości Wejście, aby uzyskać ścieżkę lokalną do narzędzia z właściwości Wynik (String).

    • Konwertuj ścieżkę lokalną do ścieżki serwera: we właściwości Kierunek wybierz ServerToLocal, a następnie określ ścieżkę lokalną do pliku agenta kompilacji we właściwości Wejście.

Pobieranie ścieżek do plików w obszarze roboczym (działanie ConvertWorkspaceItems)

Użyj działania ConvertWorkspaceItems, aby konwertować ścieżki serwera do ścieżek lokalnych agenta kompilacji lub konwertować ścieżki lokalne agenta kompilacji do ścieżek serwera.

WłaściwośćWynik ConvertWorkspaceItems (IList<String>)

Zwraca skonwertowane wartości ścieżek.

Właściwości argumentów ConvertWorkspaceItems

  • Wejście (IEnumerable<String>): należy podać wartości ścieżek, które chcesz przekonwertować.

  • Obszar roboczy (Workspace): należy podać odwołanie do Workspace, gdzie znajdują się pliki.W większości przypadków należy ustawić tę właściwość na zmienną inicjowaną we właściwości Wynik działania CreateWorkspace.

    PoradaPorada

    Podczas tworzenia procesu kompilacji opartego na DefaultTemplate.xaml należy prawdopodobnie używać zmiennej Workspace.

  • Kierunek: wybierz jedną z następujących wartości:

    • Wybierz ServerToLocal, jeśli określasz zbiór wartości ścieżek serwera we właściwości Wejście i chcesz, aby właściwość Wynik zwracała listę wartości ścieżek lokalnych.

    • Wybierz LocalToServer, jeśli określasz zbiór wartości ścieżek lokalnych we właściwości Wejście i chcesz, aby właściwość Wynik zwracała listę wartości ścieżek serwera.

Pracuj z katalogami

Można pracować z katalogami, używając kilku działań w programie Team Foundation Build.

PoradaPorada

Jeśli trzeba pracować z katalogami, które są częścią obszaru roboczego kontroli wersji Twojej kompilacji, należy w zamian użyć działań obszaru roboczego.Aby uzyskać więcej informacji, zobacz Pobieranie ścieżek do plików w obszarze roboczym.

Tworzenie katalogu (działanie CreateDirectory)

Użyj działania CreateDirectory do utworzenia katalogu o nazwie określonej we właściwości Katalog (String).

Skopiuj katalog (działanie CopyDirectory)

Użyj działania CopyDirectory do skopiowania cyklicznie całej zawartości z jednego katalogu określonego we właściwości Źródło (String) do innego katalogu określonego we właściwości Miejsce docelowe (String).Katalog określony we właściwości Miejsce docelowe musi już istnieć.Puste katalogi lub podkatalogi nie są kopiowane.

Usuń katalog (działanie DeleteDirectory)

Użyj działania DeleteDirectory, aby usunąć katalog o nazwie określonej we właściwości Katalog (String).W przypadku usuwania katalogu, który zawiera podkatalogi, należy ustawić właściwość Cyklicznie (Boolean) na True; w przeciwnym razie kompilacja nie powiedzie się.

Pobierz ścieżkę do katalogu roboczego agenta kompilacji (działanie GetBuildDirectory)

Użyj działania GetBuildDirectory, aby uzyskać ścieżkę literału do katalogu roboczego agenta kompilacji we właściwości Wynik (String).Działania tego można użyć tylko wewnątrz działania AgentScope.

Powrót do początku

Manipulowanie danymi ścieżki

Działanie GetCommonLocalPath

Użyj działania GetCommonLocalPath, aby pobrać ścieżkę do wspólnego folderu nadrzędnego najniższego poziomu jednego lub więcej folderów lokalnych.Jeśli na przykład określono LocalItems (IEnumerable<String>) w następujący sposób:

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

Wówczas Wynik (String) zwróci:

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

Działanie GetCommonServerPath

Użyj działania GetCommonServerPath, aby pobrać ścieżkę do wspólnego folderu nadrzędnego najniższego poziomu jednego lub więcej folderów lokalnych.Jeśli na przykład określono ServerItems (IEnumerable<String>) w następujący sposób:

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

Wówczas Wynik (String) zwróci:

$/TestScrum/Main

Pobierz pliki, których nie ma w obszarze roboczym

Użyj działania DownloadFiles, aby pobrać jeden plik lub więcej.Ignoruj działanie DownloadFile.

Działanie DownloadFiles

Użyj działania DownloadFiles do pobrania jednego pliku lub więcej z kontroli wersji.

PoradaPorada

Jeżeli pliki do pobrania znajdują się w obszarze roboczym kompilacji, należy prawdopodobnie uzyskać dostęp do nich za pomocą działania ConvertWorkspaceItem.

Właściwości argumentu DownloadFiles

  • LocalPath (String) Należy określić wartość:

    • Jeśli pobierany jest pojedynczy plik, określ ścieżkę lokalną i nazwę, która ma być nadana dla lokalnej kopii pobieranego pliku; na przykład "c:\Docs\readme.txt".

    • Jeśli pobieranych jest kilka plików, określ ścieżkę lokalną dla katalogu, do którego mają być pobrane pliki; na przykład "c:\Docs\".

  • ServerPath (String) Należy określić wartość:

    • Jeśli pobierany jest pojedynczy plik, określ ścieżkę serwera i nazwę tego pliku; na przykład "$/Docs/readme.txt".

    • Jeśli pobieranych jest kilka plików, określ ścieżkę serwera do katalogu zawierającego te pliki; na przykład "$/Docs/".

  • Cykl (RecursionType):

    • OneLevel: pobiera jeden plik lub więcej z katalogu określonego we właściwości ServerPath.

    • Full: pobiera pliki z katalogu określonego we właściwości ServerPath i wszystkie pliki we wszystkich podkatalogach.

  • Wersja (String): można określić versionspec.Aby pobrać bieżącą wersję, pozostaw tę właściwość ustawioną na Microsoft.TeamFoundation.VersionControl.Client.VersionSpec.Latest.DisplayString. Aby uzyskać więcej informacji dotyczących versionspecs, zobacz Składnia wiersza polecenia.

  • DeletionID (Int32): tę właściwość należy określić, tylko wtedy, gdy pobierany jest plik, który został usunięty z kontroli wersji.Możesz uzyskać tę wartość interaktywnie, wpisując w wierszu polecenia tf dir /deleted. (Aby uzyskać więcej informacji, zobacz Dir Command).Jednak program Team Foundation Build nie zapewnia wbudowanego działania dla uzyskania DeletionID.Aby używać tej właściwości, należy uzyskać lub utworzyć niestandardowe działanie, które zapewnia tę funkcjonalność.

Powrót do początku

Działanie DownloadFile

Ignoruj działanie DownloadFile.Działanie DownloadFiles jest najłatwiejszym sposobem, aby pobrać jeden plik lub więcej.

Znajdowanie plików (działanie FindMatchingFiles)

Użyj działania FindMatchingFiles, aby znaleźć pliki.Określ kryteria wyszukiwania we właściwości MatchPattern (String).W tej właściwości można określić argument, który zawiera następujące elementy:

  • Składnia, która jest obsługiwana przez argument searchPattern metody DirectoryGetFiles(String, String).

  • **, aby określić wyszukiwania cykliczne.Na przykład:

    • Aby szukać plików tekstowych w katalogach źródłowych, można określić coś, co przypomina następującą wartość dla właściwości MatchPattern: String.Format("{0}\**\*.txt", SourcesDirectory).

    • Aby szukać plików tekstowych w katalogach ze źródłami lub dodatkowymi podkatalogami nazwanymi txtfiles, można określić coś, co przypomina następującą wartość dla właściwości MatchPattern: String.Format("{0}\**\txtfiles\*.txt", SourcesDirectory).

Wyniki operacji są zbierane we właściwości Wynik (IEnumerable<String>).

Zapisz ostrzeżenia, błędy, komunikaty i inne dane w dzienniku kompilacji

WriteCustomSummaryInformation

Użyj działania WriteCustomSummaryInformation, aby napisać komunikat do podsumowania kompilacji, który będzie wyświetlany użytkownikom w oknie wyników kompilacji.

Właściwości argumentów WriteCustomSummaryInformation

  • Komunikat (String): należy określić komunikat, który chcesz wyświetlić w podsumowaniu kompilacji.

    Wewnątrz komunikatu można dołączać hiperłącza ,używając jednej z poniższych składni:

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

    Na przykład:

    For the latest operation status, see [Fabrikam Fiber Ops] (http://intranet.fabrikam.com/ops/status).
    
  • SectionDisplayName (String): należy określić nazwę sekcji, w której ma być wyświetlony komunikat.Jeśli wiele wystąpień WriteCustomSummaryInformation z tą samą wartością SectionKey określa różne wartości SectionDisplayName, wówczas system używa SectionDisplayName pierwszego wystąpienia w szablonie procesu kompilacji.

  • SectionKey (String): należy określić identyfikator dla nazwy sekcji, w której ma być wyświetlony komunikat.Określona wartość musi być zgodna z zasadami opisanymi w temacie NameProperty.

    Przykładowo implementowane są dwa wystąpienia WriteCustomSummaryInformation, gdzie SectionKey ma wartość “MySection”. Podczas przetwarzania kompilacji oba komunikaty pojawiają się w tej samej sekcji w podsumowaniu kompilacji.

  • SectionPriority (Int32): można określić priorytet sekcji, który określa względne jej położenie w podsumowaniu kompilacji.Im niższa wartość, tym wyżej sekcja będzie wyświetlana w podsumowaniu.Jeśli wiele wystąpień WriteCustomSummaryInformation z tą samą wartością SectionKey określa różne wartości SectionPriority, wówczas system używa wartości SectionPriority pierwszego wystąpienia w szablonie procesu kompilacji.

Powrót do początku

Działanie WriteBuildMessage

Użyj działania WriteBuildMessage, aby zapisać w dzienniku kompilacji komunikat informacyjny.Musisz określić komunikat we właściwości Komunikat (String).Możesz również określać znaczenie komunikatu, zmieniając wartość właściwości Znaczenie (BuildMessageImportance).

PoradaPorada
  • Użytkownicy procesu kompilacji mogą polegać na szczegółowości filtrowania, aby ograniczyć przeciążenia spowodowane zbyt dużą ilością informacji zarówno dotyczących tego, co muszą wyświetlić, jak i danych, które są przechowywane w magazynie danych.Można zapewnić, że filtrowanie będzie bardziej skuteczne przy użyciu przydatnego i spójnego podejścia, ustawiając właściwość Znaczenie komunikatów kompilacji.Aby uzyskać więcej informacji, zobacz Zarządzaj informacjami o kompilacji i kontroluj ich szczegółowość.

  • W przypadku korzystania z ustawień domyślnych wiadomości nie będą zapisywane do dziennika kompilacji.Aby rozwiązać ten problem, wykonaj jedną z następujących czynności:

    • Ustaw właściwość WriteBuildMessageZnaczenie na Microsoft.TeamFoundation.Build.Client.BuildMessageImportance.High.

    • Na karcie Proces definicji kompilacji ustaw parametr procesu Szczegółowość rejestrowania na Detailed lub Diagnostic.

Działanie WriteBuildWarning

Użyj działania WriteBuildWarning, aby zapisać w dzienniku kompilacji komunikat ostrzegawczy.Ostrzeżenie pojawia się z żółtym wykrzyknikiem w oknie wyników kompilacji.Musisz określić komunikat we właściwości Komunikat (String).

Ostrzeżenia kompilacji są zapisywane tylko wtedy, gdy zespół ustawi poziom szczegółowości na Minimalny lub wyższy.Aby uzyskać więcej informacji, zobacz Zarządzaj informacjami o kompilacji i kontroluj ich szczegółowość.

Działanie WriteBuildError

Użyj działania WriteBuildError, aby zapisać w dzienniku kompilacji komunikat błędu kompilacji.Błędy pojawiają się z czerwonym wykrzyknikiem w oknie wyników kompilacji.Kiedy do dziennika zdarzeń zapisywany jest błąd, kompilacja jest klasyfikowana jako Partially Succeeded.Musisz określić komunikat we właściwości Komunikat (String).

Błędy są rejestrowane zawsze, bez względu na ustawienie szczegółowości.Aby uzyskać więcej informacji, zobacz Zarządzaj informacjami o kompilacji i kontroluj ich szczegółowość.

Działanie WriteBuildTestError

Użyj działania WriteBuildTestError, aby zapisać testowy komunikat błędu w dzienniku kompilacji.Błędy pojawiają się z czerwonym wykrzyknikiem w oknie wyników kompilacji.Kiedy do dziennika zdarzeń zapisywany jest błąd, kompilacja jest klasyfikowana jako Partially Succeeded.Musisz określić komunikat we właściwości Komunikat (String).

Błędy są rejestrowane zawsze, bez względu na ustawienie szczegółowości.Aby uzyskać więcej informacji, zobacz Zarządzaj informacjami o kompilacji i kontroluj ich szczegółowość.

Działanie WriteBuildInformation&lt;T&gt;

Użyj działania WriteBuildInformation<T>, aby umieścić obiekt w dzienniku kompilacji.Gdy użytkownik wyświetla dziennik w oknie wyników kompilacji, obiekt jest renderowany przy użyciu odbicia.

Właściwości argumentów WriteBuildInformation<T>

  • Wartość (Object): należy określić obiekt, który ma być umieszczony w dzienniku kompilacji.Aby obiekt mógł być renderowany w oknie wyników kompilacji, musi implementować IBuildInformationNode i ustawić Type na jedną z następujących wartości InformationTypes:

    • ActivityProperties

    • ActivityTracking

    • AgentScopeActivityTracking

    • BuildError

    • BuildMessage

    • BuildProject

    • BuildStep

    • BuildWarning

    • ExternalLink

    • OpenedWorkItem

  • ParentToBuildDetail: można określić False, aby uczynić obiekt nadrzędny tego obiektu obiektem nadrzędnym działania. Można też określić True, aby uczynić obiekt nadrzędny obiektem IBuildDetail.

    Efektem użycia tej właściwości jest to, jak informacje są wyświetlane w oknie wyników kompilacji.W przypadku określenia False informacje będą wcięte i wyrównane z danymi wyjściowymi z innych działań, które są przed i po działaniu WriteBuildInformation<T> i znajdują się na tym samym poziomie.Jeśli określisz True, informacje nie będą wcięte.

Powrót do początku

Zapisz metadane do magazynu danych

Można zapisać metadane o kompilacji do magazynu danych:

  • Zapisz numer kompilacji (działanie UpdateBuildNumber)

  • Zapisz kluczowe punkty danych o kompilacji (działanie SetBuildProperties)

PoradaPorada

Jeśli działania te nie obsługują metadanych, które chcesz zapisać, można użyć działania GetBuildDetail, aby uzyskać odwołanie do obiektu IBuildDetail. Następnie przypisz dane bezpośrednio do obiektu za pomocą tego odwołania.

Zapisz numer kompilacji (działanie UpdateBuildNumber)

Użyj działania UpdateBuildNumber, aby ustawić numer kompilacji (lub nazwę) danej kompilacji.To działanie wykonuje następujące kroki:

  1. Konstruuje numer kompilacji oparty na wyrażeniu, które określa format numeru kompilacji.Proces kompilacji zazwyczaj przyjmuje to wyrażenie z argumentu przepływu pracy, który jest dostarczany przez parametr na karcie Proces definicji kompilacji.

  2. Ustawia numer kompilacji (lub nazwę) danej kompilacji, zapisując wartość wynikową do właściwości BuildNumber.

WłaściwośćWynik UpdateBuildNumber (String)

Wynik: zwraca nową wartość BuildNumber.

Właściwości UpdateBuildNumber

Powrót do początku

Zapisz kluczowe punkty danych o kompilacji (działanie SetBuildProperties)

Użyj SetBuildProperties, aby zapisać kluczowe punkty danych do obiektu IBuildDetail, który zarządza składowaniem danych każdej kompilacji w magazynie danych.Wiele z tych danych jest widocznych dla użytkownika w oknie wyników kompilacji.

Właściwości SetBuildProperties

  • PropertiesToSet: należy zaznaczyć pola wyboru dla nazw właściwości, które chcesz ustawić.

  • BuildNumber (String): można ustawić BuildNumber dla kompilacji i traktować to jako nazwę kompilacji.

    PoradaPorada

    Aby określić tę wartość na podstawie ustawień określonych przez użytkownika na karcie Proces definicji kompilacji, prawdopodobnie zamiast tej właściwości należy użyć działania UpdateBuildNumber.

  • CompilationStatus (BuildPhaseStatus): można ustawić stan kompilacji (CompilationStatus). (Działanie MSBuild także ustawia tę wartość automatycznie).

  • DropLocation (String): można zarejestrować lokalizację wrzucania we właściwości DropLocation.

    [!UWAGA]

    W przypadku ustawienia tej właściwości nie ma potrzeby tworzenia lokalizacji docelowej.W zamian ta właściwość używana jest do przechowywania w magazynie danych lokalizacji folderu docelowego, tworzonego zazwyczaj przy użyciu działania CreateDirectory.

  • KeepForever (Boolean): można ustawić właściwość KeepForever na True, aby pominąć ustawienia na karcie Zasady przechowywania definicji kompilacji i zachować zakończoną kompilację na zawsze.

  • LabelName (String): można ustawić właściwość LabelName, aby zarejestrować etykietę używaną do oznaczenia tej kompilacji w plikach kodu źródłowego w kontroli wersji.Zwykle ustawia się tę właściwość, aby dopasować się do wartości właściwości Nazwa działania LabelWorkspace.

    Ważna uwagaWażne

    Program Team Foundation Build wymaga tych danych do skojarzenia grupy zmian i elementów roboczych z kompilacjami.Jeśli dane te nie będą podane, działanie AssociateChangesetsAndWorkItems zakończy się niepowodzeniem.

  • LogLocation (String): można użyć właściwości LogLocation do zarejestrowania ścieżki pliku UNC do folderu, w którym proces kompilacji umieszcza plik dziennika.

    [!UWAGA]

    Prawdopodobnie nie trzeba będzie używać tej właściwości w niestandardowym procesie kompilacji.Ta właściwość jest przeznaczona głównie do użytku przez plik UpgradeTemplate.xaml do obsługi starszych procesów kompilacji.

  • Jakość (String): można zarejestrować jakość kompilacji we właściwości Quality.

  • SourceGetVersion (String): można użyć właściwości SourceGetVersion, aby zarejestrować specyfikację wersji, dla której są pobierane źródła dla tej kompilacji.

  • Stan (BuildStatus): można zarejestrować ogólny stan kompilacji we właściwości Status.Na przykład można używać tej właściwości do wskazania, czy kompilacja zakończyła się powodzeniem czy też niepowodzeniem.

  • TestStatus (BuildPhaseStatus): można używać właściwości TestStatus, aby zarejestrować ogólny stan testów uruchamianych dla tej kompilacji.Na przykład można użyć tej właściwości do wskazania, czy testy wykonywane dla tej kompilacji zakończyły się powodzeniem czy też niepowodzeniem.

Powrót do początku

Kontroluj proces kompilacji

Można użyć działań Team Foundation Build do kontrolowania procesu kompilacji w następujący sposób:

  • Uruchom działania w agencie kompilacji

  • Użyj struktury mutex do implementowania procesu bezpiecznego wątkowo

  • Ogranicz sekcje procesu kompilacji oparte na przyczynie (wyzwalacz)

Uruchom działania w agencie kompilacji (działanie AgentScope)

Użyj działania AgentScope, aby ująć części procesu kompilacji, który chcesz uruchomić w agencie kompilacji.

Właściwości argumentów AgentScope

  • Wybór agenta

    • MaxWaitTime (TimeSpan): można określić maksymalną ilość czasu oczekiwania procesu kompilacji na dostępność agenta kompilacji.Można wpisać wartość w formacie gg:mm:ss.Przykładowo kompilacja zakończy się niepowodzeniem z błędem przekroczenia limitu czasu, jeśli określono wartość 01:30:45 i kompilacja nie została przypisana do agenta kompilacji po 1 godzinie, 30 minutach i 45 sekundach.Określ wartość 00:00:00, jeśli chcesz nadać kontrolerowi kompilacji nieograniczony czas na odnalezienie agenta do przetworzenia definicji kompilacji.

      Ważna uwagaWażne

      Można uniknąć tworzenia kopii zapasowych kolejki kompilacji, określając odpowiednią wartość niezerową we właściwości MaxWaitTime

    • ReservationSpec (AgentReservationSpec): można ograniczyć rodzaj agenta kompilacji przetwarzającego działania, które zawiera to działanie.Można na przykład określić, że tylko agenci kompilacji posiadający pewien znacznik będą używani do przetwarzania działań wewnątrz działania AgentScope.

  • Wykonanie

    • MaxExecutionTime (TimeSpan): można określić maksymalną ilość czasu dozwolonego na zakończenie działania AgentScope.Można wpisać wartość w formacie gg:mm:ss.Na przykład kompilacja zostanie zakończona niepowodzeniem z błędem przekroczenia limitu czasu, jeśli określona została wartość 04:30:15 i agent kompilacji nie zakończył swojej pracy po 4 godzinach, 30 minutach i 15 sekundach.Określ wartość 00: 00: 00, jeśli chcesz dać agentowi kompilacji nieograniczony czas na jej przetwarzanie.

      PoradaPorada

      Można uniknąć tworzenia kopii zapasowych kolejki kompilacji, określając uzasadnioną wartość niezerową we właściwości MaxExecutionTime

  • Zakres

    • DataToIgnore: zignoruj tę właściwość.

Powrót do początku

Użyj nazwanej struktury mutex do zaimplementowania procesu bezpiecznego wątkowo (działanie SharedResourceScope)

Użyj działania SharedResourceScope do zaimplementowania nazwanej struktury mutex (mutual exclusion — wzajemne wykluczenie), aby upewnić się, że ujęty segment procesu kompilacji będzie „bezpieczny wątkowo”.

Typowym zastosowaniem tego działania jest ujęcie części procesu kompilacji uzyskujących dostęp do zasobu udostępnionego, do którego dostęp może uzyskać co najwyżej jeden proces w danej chwili.Na przykład może wystąpić potrzeba, aby kompilacje zapisywały dane w porządku sekwencyjnym do pojedynczego pliku tekstowego w udostępnianiu plików.Aby upewnić się, że ten rodzaj procesu działa poprawnie, należy zaimplementować go wewnątrz działania SharedResourceScope.

Inny przykład można znaleźć w DefaultTemplate.xaml, w którym wywołanie działania PublishSymbols jest osadzone wewnątrz działania SharedResourceScope:

  1. Sekwencja (Sequence) >

  2. Uruchomienie agenta (AgentScope) >

  3. Spróbuj skompilować, testuj i skojarz grupę zmian z elementami roboczymi (TryCatch [Try]) >

  4. Sekwencja (Sequence) >

  5. Pobierz testy, których dotyczą zmiany, źródła indeksów i publikuj symbole (Parallel) >

  6. Jeśli SourceAndSymbolServerSettings.IndexSources lub SourceAndSymbolServerSettings.HasSymbolStorePath (If [Then]) >

  7. Indeksuj źródła i opublikuj symbole dla zainicjowanych kompilacji (InvokeForReason) >

  8. Jeśli SourceAndSymbolServerSettings.HasSymbolStorePath (If [Then]) >

  9. Spróbuj opublikować symbole (TryCatch [Try]) >

  10. Zsynchronizuj dostęp do magazynu symboli (SharedResourceScope) >

  11. Opublikuj symbole (PublishSymbols)

Właściwości argumentów SharedResourceScope

  • ResourceName (String): należy określić wartość.Wszystkie wystąpienia działań SharedResourceScope są uruchamiane pojedynczo, jeśli mają tę samą wartość ResourceName w kolekcji projektów zespołowych (nawet jeśli są w różnych szablonach definicji kompilacji).

  • MaxExecutionTime (TimeSpan): można określić maksymalną ilość czasu dozwolonego na zakończenie działania SharedResourceScope.Można wpisać wartość w formacie gg:mm:ss.Na przykład kompilacja będzie zakończona niepowodzeniem z błędem przekroczenia limitu czasu, jeśli określono wartość 04:30:15 i działanie SharedResourceScope nie zostanie zakończone po 4 godzinach, 30 minutach i 15 sekundach.Określ wartość 00:00:00, jeśli chcesz zezwolić na nieograniczony czas przetwarzania działania SharedResourceScope.

    PoradaPorada

    Można uniknąć tworzenia kopii zapasowych kolejki kompilacji, określając uzasadnioną wartość niezerową we właściwości MaxExecutionTime

  • MaxWaitTime (TimeSpan): można określić maksymalną ilość czasu oczekiwania procesu kompilacji w kolejce na przetworzenie działania SharedResourceScope.Można wpisać wartość w formacie gg:mm:ss.Na przykład kompilacja będzie zakończona niepowodzeniem z błędem przekroczenia limitu czasu, jeśli określono wartość 01:30:45 i działanie SharedResourceScope nie zostanie przetworzone w ciągu 1 godziny, 30 minut i 45 sekund.Określ wartość 00:00:00, jeśli chcesz zezwolić na nieograniczony czas oczekiwania procesu kompilacji w kolejce.

    PoradaPorada

    Można uniknąć tworzenia kopii zapasowych kolejki kompilacji, określając odpowiednią wartość niezerową we właściwości MaxWaitTime

Powrót do początku

Ogranicz sekcje procesu kompilacji oparte na przyczynie (wyzwalacz) (działanie InvokeForReason)

Użyj działania InvokeForReason, aby ująć segment procesu kompilacji, który ma być uruchomiony tylko w kompilacjach uruchomionych z określonego powodu.Przyczyny kompilacji są zazwyczaj ustawiane przez wyzwalacz wybierany przez użytkownika na karcie Wyzwalacz definicji kompilacji.We właściwości Przyczyna można określić jedną lub więcej wartości dla przyczyn, na które chcesz zezwolić. Aby uzyskać więcej informacji, zobacz Określanie wyzwalaczy kompilacji oraz przyczyn.

Powrót do początku

Kompilacja, testowanie i wykonywanie innych zadań

Można użyć działań programu Team Foundation Build do kompilowania plików binarnych, uruchamiania testów oraz wykonywania innych zadań:

  • Użyj programu MSBuild do kompilowania plików binarnych, uruchamiania analizy kodu i wykonywania innych zadań

  • Uruchom testy

  • Pobierz listę testów, na które wpływa kompilacja

Użyj programu MSBuild do kompilowania plików binarnych, uruchamiania analizy kodu i wykonywania innych zadań (działanie MSBuild)

Użyj działania MSBuild do kompilowania plików binarnych, uruchamiania analizy kodu i korzystania z innych funkcji, dostarczanych przez MSBuild.

Wynik MSBuild

Żadna właściwość tego działania nie zwraca wyniku.To działanie ustawia jednak CompilationStatus na Failed w przypadku zarejestrowania jakichkolwiek błędów kompilacji.

Właściwości argumentów MSBuild

  • AdditionalVCOverrides (String): w przypadku ustawienia GenerateVsPropsFile na True, zawartość tej właściwości zostanie osadzona w wygenerowanym pliku .vsprops.

  • CommandLineArguments (String): można określić argumenty wiersza polecenia, które mają być przekazane do MSBuild.

  • Konfiguracja (String): można określić konfigurację do kompilacji.Na przykład: “debug” lub “release”.

  • GenerateVSPropsFile (Boolean): jeśli ta właściwość jest ustawiona na True, MSBuild generuje standardowy plik .vsprops do przekazania do projektów C++.Plik ten będzie zawierał katalog wyjściowy dla projektów C++ i wszystko to, co zostanie określone we właściwości AdditionalVCOverrides.

  • Plik dziennika (String): można określić nazwę pliku dziennika, który powinien być utworzony przez MSBuild.

  • LogFileDropLocation (String): można określić w pełni kwalifikowaną ścieżkę UNC do katalogu, w którym ma być zapisany plik dziennika MSBuild.

  • MaxProcesses (Int32): można określić maksymalną liczbę procesów, które tworzy MSBuild.

  • OutDir (String): można określić katalog, gdzie MSBuild ma wrzucić skompilowane pliki binarne.Aby uzyskać więcej informacji, zobacz Kontroli, gdzie Build System umieszcza swoje pliki binarne.

  • Platforma (String): można określić platformę, na którą kompiluje program MSBuild.Na przykład: “Any CPU”, “x86” lub “x64”.

  • Projekt (String): można określić rozwiązanie lub projekt kodu, który kompiluje program MSBuild.

  • ResponseFile (String): można określić plik odpowiedzi używany przez program MSBuild.

  • RunCodeAnalysis (CodeAnalysisOption): można określić, czy program analizy kodu powinien być uruchomiony zawsze, według ustawień projektu czy też nigdy nie powinien być uruchamiany.

  • Targets (IEnumerable<String>): można określić cele do kompilacji.

  • TargetsNotLogged (IEnumerable<String>): można określić cele, dla których zdarzenia ProjectStarted nie powinny być rejestrowane.

  • ToolPath (String): można określić ścieżkę do narzędzia.

  • ToolPlatform (ToolPlatform): można określić platformę dla narzędzia.Określ Microsoft.TeamFoundation.Build.Workflow.Activities.ToolPlatform.Auto, aby wykryć platformę na podstawie bieżącego systemu operacyjnego.

  • Poziom szczegółowości (BuildVerbosity): można określić poziom szczegółowości dziennika generowanego przez MSBuild.

Aby uzyskać więcej informacji o wielu opcjach MSBuild, na które wpływają właściwości MSBuild, zobacz Informacje w wierszu polecenia programu MSBuild.

Powrót do początku

Uruchom testy

Testy można uruchomić za pomocą działania RunTests lub działania MSTest.

Uruchom testy przy użyciu działania RunTests

Użyj działania RunTests, aby do uruchamiania testów użyć modułu uruchamiającego testy Agile Test Runner.Jeśli Twoja kompilacja kompiluje i testuje pliki binarne o niezgodnych platformach, należy uruchamiać to działanie oddzielnie dla zestawów w każdej platformie.

Aby uzyskać więcej informacji, zobacz Uruchamianie testów w procesie kompilacji.

Podstawowe właściwości RunTests

  • TestSources (IEnumerable<String>): należy określić listę plików zestawów, które zawierają testy do uruchomienia.

  • ExecutionPlatform (ExecutionPlatformType): można określić platformę plików binarnych do przetestowania.Aby uzyskać więcej informacji, zobacz Moduł uruchamiający testy Agile Test Runner.

  • ExecutionTimeout (Int32): można określić maksymalną ilość czasu oczekiwania procesu kompilacji na zakończenie przebiegu testowego.Określ wartość 0, jeśli chcesz nadać działaniu RunTests nieograniczony czas na wykonywanie testów.

  • KeepAlive (Boolean): można ustawić tę właściwość na True, jeśli proces modułu uruchamiającego testy Agile Test Runner ma kontynuować wykonywanie w agencie kompilacji po zakończeniu działania RunTests.

  • RunSettings (String): nie udokumentowano.

  • TestCaseFilter (String): ta właściwość umożliwia uruchomienie podzbioru przypadków testowych.Aby uzyskać więcej informacji, zobacz Określanie kryteriów dla testów uruchamianych przez Visual Studio Test Runner.

  • UpdateFrequency (Int32): nie udokumentowano.

  • UpdateFrequencyTimeout (Int32): nie udokumentowano.

Właściwości publikowania RunTests

Można użyć następujących właściwości do publikowania wyników testu dla kolekcji projektów zespołowych:

  • PublishResults (Boolean): należy ustawić tę właściwość na True, aby opublikować wyniki testów.

  • Flavor (String): można określić wersję kompilacji, na podstawie której uruchomiono testy, których wyniki chcesz opublikować.

  • Platforma (String): można określić platformę kompilacji, na podstawie której uruchomiono testy, których wyniki chcesz opublikować.

  • RunName (String): można określić nazwę przebiegu testowego.Klienci procesu kompilacji zobaczą tę nazwę w oknie podsumowania wyników kompilacji.Jeśli nazwa nie zostanie określona, system wygeneruje ją automatycznie.

Delegaty

  • OnTestCompleted: nie udokumentowano.

  • OnTestRunCompleted: nie udokumentowano.

Powrót do początku

Uruchamianie testów przy użyciu działania MSTest

Użyj tego działania, aby uruchomić testy za pomocą MSTest.exe.

Podstawowe właściwości MSTest

Na początek należy zadecydować, jak mają być uruchamiane testy, a następnie określić wartości dla odpowiednich właściwości.

Właściwości filtrowania MSTest

Można użyć następujących właściwości, aby filtrować uruchamiane testy:

  • Kategoria (String): można filtrować testy na podstawie ich kategorii.Właściwość ta jest równoważna opcji /category polecenia MSTest.exe.Aby uzyskać więcej informacji, zobacz Opcje narzędzia wiersza polecenia MSTest.exe (/category) i Definiowanie kategorii testów służących do grupowania testów.

  • MaxPriority (Int32): można określić maksymalny priorytet testów, które mają być uruchomione.Jedynie testy o priorytecie niższym od tej wartości lub jej równym zostaną uruchomione.Należy określić dodatnią liczbę całkowitą, która jest większa od lub równa właściwości MinPriority lub określić -1, jeśli użytkownik nie chce określać priorytetu maksymalnego.

    PoradaPorada

    Jeśli do testów przypisane zostały priorytety, właściwości MinPriority i MaxPriority mogą być ważnym mechanizmem pomagającym w zdefiniowaniu równowagi między dokładnym testowaniem a szybszymi kompilacjami.

  • MinPriority (Int32): można określić priorytet minimalny dla testów do uruchomienia.Jedynie testy, których priorytet jest większy od tej wartości lub jej równy zostaną uruchomione.Należy określić dodatnią liczbę całkowitą, która jest mniejsza od lub równa właściwości MaxPriority lub określić -1, jeśli użytkownik nie chce określać priorytetu minimalnego.

  • TestNames (IEnumerable<String>): można określić nazwy testów do uruchomienia.Właściwość ta jest równoważna opcji /test polecenia MSTest.exe.Aby uzyskać więcej informacji, zobacz Opcje narzędzia wiersza polecenia MSTest.exe (/test).

Właściwości publikowania MSTest

Można użyć następujących właściwości do publikowania wyników testu dla kolekcji projektów zespołowych:

  • Publikuj (Boolean): należy ustawić tę właściwość na True, aby opublikować wyniki testów.

  • Flavor (String): można określić wersję kompilacji, na podstawie której uruchomiono testy, których wyniki chcesz opublikować.Właściwość ta jest równoważna opcji /flavor polecenia MSTest.exe.Aby uzyskać więcej informacji, zobacz Opcje wiersza polecenia dotyczące publikowania wyników testów.

  • Platforma (String): można określić platformę kompilacji, na podstawie której uruchomiono testy, których wyniki chcesz opublikować.Właściwość ta jest równoważna opcji /platform polecenia MSTest.exe.Aby uzyskać więcej informacji, zobacz Opcje wiersza polecenia dotyczące publikowania wyników testów.

  • TestConfigId (Int32): można określić identyfikator istniejącej konfiguracji zarządzania testami do skojarzenia z przebiegiem testu, którego wyniki mają być opublikowane.Właściwość ta jest równoważna opcji /testconfigid polecenia MSTest.exe.Aby uzyskać więcej informacji, uruchom MSTest /? w wierszu polecenia Visual Studio.

  • TestConfigName (String): można określić nazwę istniejącej konfiguracji zarządzania testami do skojarzenia przebiegiem testu do opublikowania.Właściwość ta jest równoważna opcji /testconfigname polecenia MSTest.exe.Aby uzyskać więcej informacji, uruchom MSTest /? w wierszu polecenia Visual Studio.

Inne właściwości MSTest

  • CommandLineArguments (String): aby uzyskać informacje dotyczące dodatkowych opcji wiersza polecenia, zobacz MSTest.exe - Opcje wiersza poleceń.

  • PathToResultsFilesRoot (String): można określić ścieżkę do katalogu głównego agenta kompilacji, gdzie MSTest.exe umieszcza pliki wyników (.trx).

  • ToolPath (String): można określić ścieżkę do katalogu zawierającego wersję MSTest.exe do uruchomienia.Jeżeli ścieżka nie zostanie określona, Team Foundation Build automatycznie określa ścieżkę na podstawie danych z list testów lub kontenerów testów.

Powrót do początku

Pobierz listę testów, na które wpływa kompilacja (działanie GetImpactedTests)

Użyj działania GetImpactedTests, aby zidentyfikować zmiany kodu w bieżącej kompilacji i przedstawić listę testów, na które te zmiany miały wpływ.To działanie zapisuje listę zmodyfikowanych testów w magazynie danych, aby pomóc członkom zespołu określić, które testy powinni uruchomić po zakończeniu kompilacji.Aby uzyskać więcej informacji dotyczących sposobu, w jaki zespół może wykorzystać te dane, zobacz Które testy należy uruchomić od ukończenia ostatniej kompilacji?.

[!UWAGA]

Działanie to nie wpływa na kompilacje ewidencjonowane warunkowo lub kompilacje prywatne.

Wymagane warunki

Działanie GetImpactedTests może działać tylko wtedy, gdy są spełnione następujące warunki:

Jak działanie GetImpactedTests identyfikuje poprzednią kompilację

Działanie GetImpactedTests zwraca wyniki, porównując bieżącą kompilację z poprzednią.Działanie identyfikuje poprzednią kompilację, używając następujących procesów:

  1. Jeśli określono właściwość BaselineBuildDropLocation, kompilacja, która wygenerowała te pliki binarne, jest identyfikowana jako poprzednia.

  2. Jeśli nie określono właściwości BaselineBuildDropLocation, działanie identyfikuje poprzednią kompilację przez wyszukiwanie w magazynie danych najnowszych kompilacji, które spełniają wszystkie następujące kryteria:

    • Kompilacja ma taki sam BuildDefinitionUri jak bieżąca kompilacja.

    • Status kompilacji Status to Succeeded lub PartiallySucceeded.

    • Kompilacja posiada DropLocation.

    • Nie jest to kompilacja ewidencjonowana warunkowo ani prywatna.

Właściwości wyniku GetImpactedTests

  • CodeChanges (CodeChangeList): zwraca listę zmian wprowadzonych do każdej metody w kodzie między tą a poprzednią kompilacją.Metody są analizowane na poziomie Microsoft intermediate language (MSIL).

  • ImpactedTests (TestList): zwraca listę testów, na które miały wpływ zmiany kodu między poprzednią a tą kompilacją.

Właściwości argumentów GetImpactedTests

  • Różne

    • Build: należy podać obiekt kompilacji IBuildDetail.Można użyć działania GetBuildDetail, aby uzyskać odwołanie do tego obiektu.
  • Inne

    • Zestawy (IEnumerable<String>): należy określić listę zestawów, które ma zbadać to działanie.Zazwyczaj te zestawy są kompilowane w tej kompilacji.

    • AssociatedChangesets (IList<Changeset>): można określić zestawy zmian, które chcesz skojarzyć z wynikami wpływu testu.Zazwyczaj użytkownik chce określić kompilowane zestawy zmian.Można uzyskać odwołanie do tych zestawów zmian dzięki działaniu AssociateChangesetsAndWorkItems.

    • BinariesRoot (String): należy określić ścieżkę do plików binarnych, od których zależą zestawy użytkownika.Można uzyskać tę wartość za pomocą działania GetBuildDirectory.

    • Obszar roboczy (Workspace): należy podać odwołanie do obszaru roboczego kompilacji.Można uzyskać odwołanie z właściwości Wynik działania CreateWorkspace.

    • BaselineBuildDropLocation (String): można określić ścieżkę do folderu docelowego zawierającego zakończoną kompilację, którą działanie GetImpactedTests ma porównać z bieżącą kompilacją.Jeśli ta właściwość nie jest określona, działanie spróbuje wysłać do systemu kompilacji zapytanie o poprzednią kompilację.Aby uzyskać więcej informacji, zobacz „Jak działanie GetImpactedTests identyfikuje poprzednią kompilację” wcześniej w tej sekcji.

Powrót do początku

Uruchom proces (działanie InvokeProcess)

Użyj działania InvokeProcess do uruchomienia procesu (uruchom program) na serwerze kompilacji.Działanie to jest zasadniczo otoką nad Start.

WłaściwośćWynik InvokeProcess (Int32)

Zwraca ExitCode z procesu.

Właściwości argumentów InvokeProcess

  • FileName (String): należy określić FileName procesu, który ma być uruchomiony (program do uruchomienia).Na przykład: %ProgramFiles%\ContosoBuildUtils\MarkBins.exe.

  • Argumenty (String): można określić argumenty wiersza polecenia (Arguments), które mają być przekazywane do procesu.

  • EnvironmentVariables (IDictionary<String,String>): można określić dodatkowe zmienne środowiskowe (EnvironmentVariables) oraz ich wartości.

  • OutputEncoding (Encoding): można określić kodowanie używane do odczytywania danych wyjściowych (StandardOutputEncoding) i strumieni błędów (RedirectStandardError).W wielu przypadkach wartość domyślna jest najlepszą wartością dla tej właściwości:

    System.Text.Encoding.GetEncoding(System.Globalization.CultureInfo.InstalledUICulture.TextInfo.OEMCodePage)
    
  • WorkingDirectory (String): można określić katalog roboczy (WorkingDirectory), w którym ma być uruchomiony proces.

    Można na przykład uruchomić narzędzie MarkBins.exe dla skompilowanych plików binarnych.Aby zawęzić zakres, w którym działa narzędzie, można wywołać GetBuildDirectory i umieścić wynik w tej właściwości.

Aby wyświetlić wyjście standardowe i dane wyjściowe błędów procesu

  1. W działaniu InvokeProcess kliknij dwukrotnie Kliknij dwukrotnie, aby wyświetlić.

  2. Przeciągnij działanie WriteBuildMessage z przybornika, tak aby pojawiło się pod Obsługa standardowego wyjścia i ustaw właściwość WriteBuildMessageKomunikat na stdOutput.

  3. Przeciągnij działanie WriteBuildError z przybornika, tak aby pojawiło się ono pod Obsługa standardowego wyjścia i ustaw właściwość WriteBuildMessageKomunikat na errOutput.

Praca z kontrolą wersji

Można użyć działań Team Foundation Build do wykonania następujących zadań kontroli wersji:

  • Skojarz grupę zmian i elementy robocze z kompilacją

  • Zaewidencjonuj zmiany warunkowe

  • Oceń zasady ewidencjonowania

  • Oznacz pliki w kontroli wersji

Skojarz grupy zmian i elementy robocze z kompilacją (działanie AssociateChangesetsAndWorkItems)

Użyj działania AssociateChangesetsAndWorkItems, aby połączyć każdą zakończoną kompilację z zestawami zmian, które przekazane zostały do kodu i skojarzonych elementów roboczych.

Każda definicja kompilacji przechowuje swój własny rekord, określający, które grupy zmian i elementy robocze oczekują na skojarzenie z następną zakończoną kompilacją.Na przykład zarówno Kompilacja A, jak i Kompilacja B mogą kompilować grupę zmian 382.Kompilacja A jest dodana do kolejki i zakończona pomyślnie, lecz Kompilacja B jest dodana do kolejki i zakończona niepowodzeniem.Zestaw zmian 382 jest teraz połączony z zakończoną pomyślnie Kompilacją A i zakończoną niepowodzeniem Kompilacją B. Zestaw zmian 382 nie będzie połączony z następną ukończoną kompilacją Kompilacji A, lecz zostanie połączony z następną pomyślnie zakończoną kompilacją Kompilacji B.

WłaściwośćWynik AssociateChangesetsAndWorkItems (IList<Changeset>)

Zwraca zestawy zmian skojarzone z kompilacją.

Właściwości argumentów AssociateChangesetsAndWorkItems

  • CurrentLabel (String): należy pozostawić tę właściwość pustą.

  • LastLabel (String): należy pozostawić tę właściwość pustą.

  • UpdateWorkItems (Boolean): można ustawić wartość tej właściwości na True, aby wypełnić pole Poprawiony skojarzonych elementów roboczych numerem kompilacji.W przeciwnym wypadku ustaw wartość False.

Powrót do początku

Zaewidencjonuj bramkowane zmiany (działanie CheckInGatedChanges)

Użyj działania CheckInGatedChanges do zaewidencjonowania w kontroli wersji zmian kodu, które wywołały kompilację bramkowaną warunkowo.To działanie także kojarzy kompilację z elementami roboczymi, które są skojarzone z zestawem zmian.

[!UWAGA]

Aby funkcjonowało poprawnie, działanie musi być umieszczone po wszystkich implementacjach działań MSBuild i MSTest w szablonie.

WłaściwośćWynik CheckInGatedChanges (Changeset)

Zwraca zestaw zmian zawierający aktualnie ewidencjonowane zmiany.

Właściwości argumentów CheckInGatedChanges

  • IgnoreErrors (Boolean): należy ustawić tę właściwość na False, aby zezwolić na sprawdzanie plików tylko wtedy, gdy obie właściwości CompilationStatus i TestStatus mają wartość Succeeded.Ustaw tę właściwość na True, aby umożliwić zaewidencjonowanie plików niezależnie od wartości tych właściwości.

    [!UWAGA]

    Można użyć działania SetBuildProperties, aby ustawić właściwości CompilationStatus i TestStatus.

  • UpdateWorkItems (String): należy ustawić tę wartość na True, aby wypełnić pole Poprawiony skojarzonych elementów roboczych numerem kompilacji.W przeciwnym wypadku ustaw False.

Powrót do początku

Oceń zasady ewidencjonowania (działanie EvaluateCheckInPolicies)

Użyj działania EvaluateCheckInPolicies, aby uruchomić zasady ewidencjonowania na serwerze kompilacji.To działanie uruchamia zasady ewidencjonowania, które obowiązują dla folderów określonych na karcie Obszar roboczy definicji kompilacji.Kompilacja kończy się niepowodzeniem, jeśli zasady ewidencjonowania są błędne i przyczyną kompilacji jest CheckInShelveset (kompilacja ewidencjonowana warunkowo) lub ValidateShelveset (kompilacja prywatna).

Ważna uwagaWażne

Zasady ewidencjonowania są oceniane na serwerze kompilacji, nie na komputerze klienckim dewelopera.

Najbardziej wydajnym wykorzystaniem tego działania jest wymuszenie wyższej jakości warunkowania przez używanie go wraz z kompilacjami ewidencjonowanymi warunkowo.Jeśli używasz działania w taki sposób, użytkownik nie będzie mógł obejść zasad ewidencjonowania.To działanie jest najbardziej użyteczne dla następujących typów zasad ewidencjonowania:

  • Wbudowane zasady ewidencjonowania Work Items

  • Niestandardowe zasady ewidencjonowania, które są stworzone tak, aby były oceniane na serwerze kompilacji

Działanie to nie jest przydatne przy ocenie wbudowanych zasad ewidencjonowania Builds czy Code Analysis, ponieważ procesy te można efektywniej uruchomić bezpośrednio w kompilacji za pomocą działań MSBuild i MSTest.

Aby uzyskać więcej informacji, zobacz następujące zasoby:

Właściwości argumentów EvaluateCheckInPolicies

  • Obszar roboczy (Workspace): należy określić obszar roboczy do oceny.W większości przypadków należy ustawić tę właściwość na zmienną inicjowaną we właściwości Wynik działania CreateWorkspace.Podczas tworzenia procesu kompilacji opartego na DefaultTemplate.xaml należy prawdopodobnie używać zmiennej Workspace.

Powrót do początku

Oznacz pliki w kontroli wersji

Można oznaczyć pliki za pomocą działań Team Foundation Build:

  • Oznacz kod źródłowy, który jest kompilowany

  • Oznacz pliki

Oznacz kod źródłowy, który jest kompilowany (działanie LabelWorkspace)

Należy oznaczyć pliki kodu źródłowego w kontroli wersji, tak aby zespół mógł łatwo identyfikować, która wersja każdego z plików jest dołączona do zakończonej kompilacji.Użyj działania LabelWorkspace, aby uwzględnić ten krok w procesie kompilacji.

Właściwości argumentów LabelWorkspace

  • Nazwa (String): należy określić nazwę etykiety.

  • Element podrzędny (LabelChildOption): można określić sposób obsługi elementów, które mają już etykiety odpowiadające określonej etykiecie.Właściwość ta jest równoważna opcji /child polecenia tf label.

  • Obszar roboczy (Workspace): należy podać odwołanie do obszaru roboczego tej kompilacji.W większości przypadków należy ustawić właściwość zmiennej inicjowanej we właściwości Wynik działania CreateWorkspace.Podczas tworzenia procesu kompilacji opartego na DefaultTemplate.xaml należy prawdopodobnie używać zmiennej Workspace.

  • Komentarz (String): można określić komentarz dla etykiety.Właściwość ta jest równoważna opcji /comment polecenia tf label.

  • Zakres (String): można określić zakres dla etykiety.Właściwość ta jest równoważna z argumentem @scope polecenia tf label.

Aby uzyskać więcej informacji dotyczących parametrów tf label, zobacz Label Command (Team Foundation Version Control).

Powrót do początku

Oznacz pliki (działanie LabelSources)

Użyj działania LabelSources, aby oznaczyć pliki w kontroli wersji.

PoradaPorada

Często można efektywniej oznaczać kompilowane pliki kodu źródłowego, korzystając z działania LabelWorkspace.

Właściwości argumentów LabelSources

  • Elementy (IEnumerable<String>): należy określić elementy, które chcesz oznaczyć.Każdy String jest równoważny z argumentem itemspec polecenia tf label.

  • Nazwa (String): należy określić nazwę etykiety.

  • Zakres (String): należy określić zakres dla etykiety.Właściwość ta jest równoważna z argumentem @scope polecenia tf label.

  • Cykl (RecursionType): można określić Microsoft.TeamFoundation.VersionControl.Client.RecursionType.Full, aby oznaczyć wszystkie pliki w hierarchii katalogów.W przeciwnym razie można określić Microsoft.TeamFoundation.VersionControl.Client.RecursionType.OneLevel.

  • Wersja (String): należy podać wersję elementów do oznaczenia.Właściwość ta jest równoważna opcji /version polecenia tf label.

  • Element podrzędny (LabelChildOption): można określić sposób obsługi elementów zawierających etykiety, które odpowiadają określonej etykiecie.Właściwość ta jest równoważna opcji /child polecenia tf label.

  • Komentarz (String): można określić komentarz dla etykiety.Właściwość ta jest równoważna opcji /comment polecenia tf label.

Aby uzyskać więcej informacji dotyczących parametrów tf label, zobacz Label Command (Team Foundation Version Control).

Powrót do początku

Pobieranie listy zmian odłożonych na półkę (działanie QueryShelvesets)

Użyj działania QueryShelvesets, aby uzyskać listę zestawów zmian odłożonych na półkę, które spełniają kryteria.Możesz następnie użyć działania TfUnshelve, aby pobrać zawartość dowolnego zestawu zmian odłożonych na półkę.

Wynik QueryShelvesets (IList<Shelveset>)

Właściwości argumentów QueryShelvesets

Działanie TfGet

To działanie otacza Polecenie Get.

Działanie TfResolve

To działanie otacza Resolve Command.

Działanie TfShelve

To działanie otacza Polecenie shelve.

Działanie TfUndo

To działanie otacza Polecenie Undo.

Działanie TfUnshelve

To działanie otacza Polecenie unshelve.

Działanie TfWorkfold

To działanie otacza Workfold Command.

Pracuj z elementami roboczymi

Można pracować z elementami roboczymi, używając działań Team Foundation Build:

  • Skojarz grupę zmian i elementy robocze z kompilacją

  • Utwórz element pracy

Tworzenie elementu roboczego (działanie OpenWorkItem)

Użyj działania OpenWorkItem, aby utworzyć element roboczy.

WłaściwośćWynik OpenWorkItem (WorkItem)

Zwraca nowy element roboczy.

Właściwości argumentów OpenWorkItem

  • AssignedTo (String): należy określić osobę, do której chcesz przypisać element roboczy.

  • Tytuł (String): należy określić tytuł elementu roboczego.

  • Typ (String): należy określić typ elementu roboczego.Typowe wartości Typ to na przykład: “Bug”, “Issue” i “Task”.

  • Komentarz (String): można dodać komentarz do historii elementu roboczego.

  • CustomFields (IDictionary<String,String>): można określić wartość jednego lub więcej pól elementu roboczego.

Powrót do początku

Pracuj z danymi symbolicznymi

Można pracować z danymi symbolicznymi, używając dwóch działań Team Foundation Build: IndexSources i PublishSymbols.

Typowym zastosowaniem tych działań jest włączenie debugowania IntelliTrace.Aby włączyć debugowanie IntelliTrace, należy najpierw wywołać działanie IndexSources w celu przygotowania danych symbolicznych, a następnie wywołać działanie PublishSymbols w celu opublikowania danych w magazynie symboli SymStore.

Aby uzyskać więcej informacji dotyczących debugowania IntelliTrace, zobacz Debugowanie aplikacji przez rejestrowanie wykonywania kodu za pomocą funkcji IntelliTrace.

Osadzanie wersji i ścieżek kontroli wersji w danych symbolicznych w plikach PDB (działanie IndexSources)

Użyj działania IndexSources, aby osadzić ścieżki kontroli wersji i wersje w danych symbolicznych w plikach .pdb.

Właściwości argumentów IndexSources

  • FileList (IEnumerable<String>): należy określić pełną ścieżkę i nazwę każdego pliku symboli.Można użyć działania FindMatchingFiles w celu dostarczenia tego argumentu.

    Można użyć ** w celu określenia wyszukiwania cyklicznego.Można na przykład wywołać FindMatchingFiles z następującą wartością we właściwości MatchPattern: String.Format("{0}\**\*.pdb", BinariesDirectory).

Powrót do początku

Publikuj symbole do magazynu symboli SymStore (działanie PublishSymbols)

Użyj działania PublishSymbols do publikowania danych symbolicznych z plików PDB do magazynu symboli SymStore.Działanie to jest zasadniczo otoką nad SymStore.exe.Aby uzyskać informacje dotyczące magazynów symboli SymStore oraz przygotowania magazynu, zobacz Indeksowanie i publikowanie danych symbolicznych.

Ważna uwagaWażne

Dane mogą zostać uszkodzone, jeśli kompilacje współbieżne będą próbowały opublikować taki sam udział plików symboli.Aby ograniczyć to ryzyko, działanie powinno być wywołane tylko wewnątrz działania SharedResourceScope.

WłaściwośćWynik PublishSymbols (String)

Zwraca identyfikator transakcji zwracany przez SymStore.exe.

Właściwości argumentów PublishSymbols

  • FileList (IEnumerable<String>): należy określić pełną ścieżkę i nazwę każdego pliku symboli.Można użyć działania FindMatchingFiles w celu dostarczenia tego argumentu.

    Można na przykład wywołać FindMatchingFiles z następującą wartością we właściwości MatchPattern: String.Format("{0}\**\*.pdb", BinariesDirectory).

  • StorePath (String): należy określić ścieżkę pliku UNC do głównego folderu magazynu symboli SymStore.

  • CommandLineArguments (String): aby uzyskać informacje dotyczące dodatkowych argumentów, które można przekazywać do SymStore.exe, zobacz Opcje wiersza polecenia SymStore.

  • Komentarze (String): można określić komentarze transakcji, które są rejestrowane w pliku historii transakcji w magazynie symboli.Właściwość ta jest równoważna parametrowi /c Comment polecenia SymStore.exe.Aby uzyskać więcej informacji, zobacz Opcje wiersza polecenia SymStore.

  • ProductName (String): można określić nazwę produktu zarejestrowaną w pliku historii transakcji w magazynie symboli.Można na przykład ustawić tę właściwość na nazwę definicji kompilacji (Name), którą można uzyskać z właściwości BuildDefinition, wywołując GetBuildDetail.Właściwość ta jest równoważna parametrowi /t Product polecenia SymStore.exe.Aby uzyskać więcej informacji, zobacz Opcje wiersza polecenia SymStore.

  • StoreCompressed (Boolean): można ustawić tę wartość na True, aby przechowywać pliki w magazynie symboli jako pliki skompresowane.W przeciwnym razie pliki będą przechowywane jako nieskompresowane.Właściwość ta jest równoważna parametrowi /compress polecenia SymStore.exe.Aby uzyskać więcej informacji, zobacz Opcje wiersza polecenia SymStore.

  • Wersja (String): można na przykład ustawić tę właściwość dla numeru kompilacji (BuildNumber), uzyskanego przez wywołanie GetBuildDetail.Właściwość ta jest równoważna parametrowi /v Version polecenia SymStore.exe.Aby uzyskać więcej informacji, zobacz Opcje wiersza polecenia SymStore.

Powrót do początku

Pobieranie odwołań do przydatnych obiektów

Można uzyskać odwołania do przydatnych obiektów przy użyciu działań Team Foundation Build.

Pobieranie odwołania do obiektu kolekcji projektów zespołowych (działanie GetTeamProjectCollection)

Użyj działania GetTeamProjectCollection, aby pobrać z jego właściwości Wynik odwołanie do obiektu TfsTeamProjectCollection.Ten obiekt startowy jest ważny; można na przykład użyć go do połączenia z serwerem w warstwie aplikacji dla Team Foundation.

Pobieranie odwołania do obiektu IBuildAgent (działanie GetBuildAgent)

Użyj działania GetBuildAgent, aby pobrać z jego właściwości Wynik odwołanie do obiektu IBuildAgent.Działania tego można użyć tylko wewnątrz działania AgentScope.

Pobieranie odwołania do obiektu IBuildDetail (działanie GetBuildDetail)

Użyj działania GetBuildDetail, aby uzyskać z jego właściwości Wynik odwołanie do obiektu IBuildDetail.Można użyć tego obiektu, aby pobrać i w niektórych przypadkach ustawić dane dotyczące bieżącej kompilacji.

Powrót do początku

Pobieranie odwołania do obiektu BuildEnvironment (działanie GetBuildEnvironment)

Użyj działania GetBuildEnvironment, aby pobrać za pośrednictwem jego właściwości Wynik odwołanie do obiektu BuildEnvironment.Ta właściwość jest zazwyczaj używana do wykonywania następujących zadań:

  • Użyj obiektu Environment, aby ustalić, czy bieżący segment przepływu pracy jest uruchomiony na kontrolerze kompilacji lub agencie kompilacji.

  • Użyj obiektu CustomAssemblyPath, aby pobrać ścieżkę do zestawów zawierających niestandardowe działania w agencie kompilacji.

Powrót do początku

Działania, które nie są przeznaczone do modyfikowania w niestandardowym procesie kompilacji

Niektóre działania nie są przeznaczone do modyfikowania w niestandardowym procesie kompilacji.

ApproveRequestForCheckIn

Ignoruj to działanie.

Powrót do początku

Działanie CreateWorkspace

Ignoruj to działanie.

Powrót do początku

DeleteWorkspace

Ignoruj to działanie.

Powrót do początku

GenerateRunSettings

Ignoruj to działanie.

Powrót do początku

GetApprovedRequests

Ignoruj to działanie.

Powrót do początku

GetPendingChanges

Ignoruj to działanie.

Powrót do początku

GetRejectedRequests

Ignoruj to działanie.

Powrót do początku

GetReshelvedShelveset

Ignoruj to działanie.

Powrót do początku

GetShelvedChanges

Ignoruj to działanie.

Powrót do początku

GetWorkspace

Ignoruj to działanie.

Powrót do początku

ParseWorkspaceSpec

Ignoruj to działanie.

Powrót do początku

RejectRequestFromCheckIn

Ignoruj to działanie.

Powrót do początku

RetryRequest

Ignoruj to działanie.

Powrót do początku

RetryRequests

Ignoruj to działanie.

Powrót do początku

RevertWorkspace

Ignoruj to działanie.

Powrót do początku

RunOnce

Nie udokumentowano w bieżącej wersji.

SyncWorkspace

Ignoruj to działanie.

Powrót do początku

SynchronizeRequests

Ignoruj to działanie.

Powrót do początku

Działanie TfsBuild

Ignoruj to działanie.

Powrót do początku

TfQueryConflicts

Ignoruj to działanie.

Powrót do początku

Zobacz też

Koncepcje

Użycie szablonów domyślnych w procesie kompilacji

Wdrażanie i konfigurowanie kontrolera kompilacji

Wdrażanie i konfigurowanie agentów kompilacji

Inne zasoby

Program Visual Studio 2010 Workflow Designer

Windows Workflow Foundation

Odwołanie do narzędzia MSBuild

Wyświetlanie wyników kompilacji