Używanie i opracowywanie czynności niestandardowego procesu kompilacji

"Hello World" z C Sharp działania

Po utworzeniu niestandardowego szablonu procesu kompilacji można wdrożyć własną logikę biznesową za pomocą wbudowanych działań programu Team Foundation Build (TFBuild) oraz instrukcji programu Windows Workflow.Jeśli narzędzia te nie są wystarczające, można użyć działań od osób trzecich lub w razie potrzeby zaimplementować własny kod środowiska .NET Framework w CodeActivity.

PoradaPorada

Jeśli niestandardowe funkcje procesu kompilacji mogą być kodowane w pliku wsadowym systemu Windows lub skrypcie programu PowerShell, można załadować skrypt i uruchomić go jako część procesu kompilacji.Takie podejście może być prostsze i działać szybciej niż tworzenie niestandardowego procesu kompilacji.Zobacz Uruchamianie skryptu w procesie kompilacji.

  • Utwórz niestandardowe działanie procesu kompilacji

  • Edytuj szablon procesu kompilacji

  • Załaduj niestandardowy proces kompilacji

    • Ikona TFVCZaładuj i włącz niestandardowy proces kompilacji w projekt zespołowy TFVC

    • Ikona GitZaładuj i włącz niestandardowy proces kompilacji w projekt zespołowy Git

  • Włącz niestandardowy proces kompilacji

  • Uruchom kompilację.

  • Pytania i odpowiedzi

"Hello World" w podsumowaniu kompilacji

Utwórz niestandardowe działanie procesu kompilacji

Ważna uwagaWażne

Przed rozpoczęciem należy pobrać kopię szablonu i umieścić go w projekcie kodu.Jeśli użytkownik jeszcze nie wykonywał tej czynności, tutaj można sprawdzić, jak to zrobić.

Należy opracować działania procesu kompilacji w tym samym rozwiązaniu co szablony procesu kompilacji.Gdy pracuje się w ten sposób, gdy trzeba użyć jednego z działań w szablonie procesu, jest ono dostępne w przyborniku projektanta przepływu pracy.Należy jednak zachować kod źródłowy swoich działań w projekcie osobnego kodu niż ten, który zawiera szablony procesu kompilacji.

  1. Dodaj nowy język C# lub projekt kodu języka Visual Basic do rozwiązania zawierającego projekt kodu szablonu procesu kompilacji.

    Nowy projekt BuildProcessSource rozwiązania

    Nowy projekt

  2. Dodaj następujące odwołania do nowego projektu kodu:

    Jak dodać te odwołania do projektu kodu?

    Zapisz projekt kodu.

  3. Dodaj nowe działanie do projektu.

    Nowy element dla projektu kodu źródłowego

    Dodaj nowy element

  4. Wdróż swój kod CodeActivity Na przykład Hello.cs:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Activities;
    using Microsoft.TeamFoundation.Build.Workflow.Activities;
    using Microsoft.TeamFoundation.Build.Client;
    using Microsoft.TeamFoundation.Build.Workflow.Tracking;
    
    namespace BuildProcessSource
    {
        // enable the build process template to load the activity
        [BuildActivity(HostEnvironmentOption.All)]
        // keep the internal activity operations from appearing in the log
        [ActivityTracking(ActivityTrackingOption.ActivityOnly)]
        public sealed class Hello : CodeActivity
        {
            // Define an activity input argument of type string
            public InArgument<string> SayHelloTo { get; set; }
    
            // If your activity returns a value, derive from CodeActivity<TResult>
            // and return the value from the Execute method.
            protected override void Execute(CodeActivityContext context)
            {
                // Obtain the runtime value of the Text input argument
                string text = context.GetValue(this.SayHelloTo);
    
                // Add our default value if we did not get one
                if (text == null || text == "")
                {
                    text = "World";
                }
    
                // Write the message to the log
                context.TrackBuildWarning("Hello " + text, BuildMessageImportance.High);
            }
        }
    }
    

    Nie jest potrzebny plik Activity1.xaml, więc można go usunąć.

  5. Kompiluj rozwiązanie w programie Visual Studio (klawiatura: Ctrl + Shift + B).

Kiedy skończysz, rozwiązanie powinno wyglądać następująco:

Przykład rozwiązania proces kompilacji niestandardowe

Edytuj szablon procesu kompilacji

Zmodyfikuj szablon procesu kompilacji w rozwiązaniu, przeciągając do niego działalności.Po dodaniu działania do szablonu, ustaw jego właściwości (klawiatura: F4).

Edytowanie szablonu procesu kompilacji z rozwiązania

Na zakończenie zapisz szablon.

Załaduj niestandardowy proces kompilacji

Przed zdefiniowaniem kompilacji, która używa Twojego niestandardowego szablonu procesu kompilacji i aktywności, należy je załadować i włączyć.

  • Ikona TFVCZaładuj i włącz niestandardowy proces kompilacji w projekt zespołowy TFVC

  • Ikona GitZaładuj i włącz niestandardowy proces kompilacji w projekt zespołowy Git

Załaduj niestandardowy proces kompilacji do projektu zespołowego TFVC

W projekcie zespołowym TFVC Ikona TFVC:

  1. Upewnij się, że rozwiązanie zostało wbudowane (klawiatura: Ctrl + Shift + B).

  2. Podłącz (klawiatura: Ctrl + 0, C) do projektu zespołowego, gdzie planujesz przechowywać źródło procesu kompilacji.

  3. Z Eksploratora kontroli źródła dodaj elementy do folderu, który zawiera działania projektu kodu.

    Eksploratora kontroli źródła

  4. Przejdź do folderu, w którym znajduje się plik .dll i zaznacz go.Na przykład C:\Users\YourName\Source\Workspaces\FabrikamTFVC\BuildProcessTemplates\BuildProcessSource\Source\bin\Debug.

    Dodaj binarne proces kompilacji do kontroli wersji TFVC

  5. Zakończ proces, aby dodać plik.

    Dodaj binarne proces kompilacji do kontroli wersji TFVC

  6. Zaewidencjonuj zmiany.

    Oczekujące zmiany

Załaduj niestandardowy proces kompilacji do projektu zespołowego Git

W projekcie zespołowym Git Ikona Git:

  1. Ważne:

    • Przechowywanie plików binarnych (szczególnie wielu poprawek do dużych plików) może nadmiernie powiększyć repozytorium Git.Zaleca się, aby przechowywać swoje pliki binarne niestandardowego procesu kompilacji w repozytorium odseparowanym od kodu, z którego skompilowano aplikację.Można albo utworzyć oddzielny projekt zespołowy dla tego celu, albo utworzyć dodatkowe repozytorium w istniejącym projekcie zespołowym.

    • Pliki binarne muszą być przechowywane w podfolderze w repozytorium Git.Jeśli użytkownik spróbuje użyć plików binarnych w folderze głównym, może zostać zablokowany przez komunikat o błędzie wskazujący, że nie znaleziono gałęzi git.

  2. Upewnij się, że rozwiązanie zostało wbudowane (klawiatura: Ctrl + Shift + B).

  3. Podłącz (klawiatura: Ctrl + 0, C) do projektu zespołowego, gdzie planujesz przechowywać źródło procesu kompilacji.

  4. Otwórz wiersz polecenia Git.

    Otwórz wiersz polecenia na stronie zmiany

    Pyt.: Nie mogę otworzyć wiersza polecenia. Co mam zrobić?Odp.:Włącz wiersz polecenia Git.

  5. Użyj wiersza polecenia Git, aby dodać plik .dll.Na przykład:

    cd c:\users\YourName\source\repos\BuildProcesses\BuildProcessSource\Source\bin\Debug
    
    git add Source.dll -f
    
  6. Zatwierdź zmiany.

    Zatwierdź przycisku na stronie zmiany

  7. Synchronizacja lub pchanie zatwierdzenia.

    Łącze synchronizacji na stronie zmiany

    Przycisk Synchronizuj i wypychania łącze na stronie niezsynchronizowane zatwierdzenia

Włącz niestandardowy proces kompilacji

Zanim będzie można uruchomić proces kompilacji niestandardowej, należy wskazać kontrolera kompilacji plikom binarnym przesłanym do TFS i wybrać szablon procesu kompilacji w definicji kompilacji.

  1. Na stronie Kompilacje (klawiatura: Ctrl + 0, B) wybierz Akcje, a następnie Zarządzaj kontrolerami kompilacji.

  2. W oknie dialogowym Zarządzanie kontrolerami kompilacji podświetl kontrolera, którego używasz do uruchamiania tego procesu kompilacji, a następnie wybierz polecenie Właściwości.

    Okno dialogowe tworzenia kontrolerów grochu

  3. Określ ścieżkę kontroli wersji do zestawów niestandardowych.

    Tworzenie okno dialogowe właściwości kontrolera

    VisualStudioEllipsesButton — zrzut ekranu Przejdź do folderu będącego elementem nadrzędnym folderu, do którego został załadowany proces kompilacji w powyższych krokach.

    • Ikona TFVC Przykład TFVC: $/FabrikamTFVC/BuildProcessTemplates/BuildProcessSource/Source/bin/Debug

    • Ikona Git Przykład Git: BuildProcessSource/Source/Bin/Debug

      Przeglądaj okno dialogowe zawierające wartości Git

      System automatycznie konwertuje wartość wprowadzoną w ścieżce vstfs.Na przykład: vstfs:///Git/VersionedItem/FabrikamGit/BuildProcesses/master/BuildProcessSource/Source/Bin/Debug.

      Ścieżka kontroli wersji do zestawów niestandardowych

  4. Jeśli jeszcze tego nie zrobiono, należy utworzyć lub zmodyfikować definicję kompilacji i wybrać niestandardowy szablon procesu kompilacji.

    Tworzenie definicji z szablonu procesu niestandardowe

Uruchom kompilację.

Kolejkowanie kompilacji.Wynik powinien wyglądać mniej więcej tak:

"Hello World" w tworzenie podsumowanie

Pytania i odpowiedzi

Pyt.: System zablokował mnie, ponieważ nie mam uprawnień.Jak sobie z tym poradzić?

Odp.: Uprawnienia serwera programu Team Foundation Server

Pyt.: Jak dodać odwołania, które są potrzebne do pracy z przepływem pracy w programie TFBuild?

Odp.: Użyj Menadżera odwołań, aby dodać odwołania do

Wyświetl odwołania do projektu kodu i otwórz Menadżera odwołań.

Menu kontekstowe Reerences

Okno dialogowe Menedżer odniesienia

Przejdź do C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ReferenceAssemblies\v2.0, a następnie wybierz i dodaj:

Wybierz pliki do odwołania się okno dialogowe

Okno dialogowe Menedżer odniesienia

Pyt.: Co jest przyczyną błędów w moim niestandardowym procesie kompilacji?

Odp.:Typowe przyczyny błędów.

Pyt.: Co to jest Windows Workflow Foundation?Jak z tego korzystać?

A:Windows Workflow Foundation.

Pyt.: Gdzie można dowiedzieć się więcej o wbudowanych działaniach?

Odp.:Team Foundation Build — działania

Pyt.: Gdzie można uzyskać szablony procesu kompilacji, działania przepływu pracy i skrypty?

A:Community TFS Build Extensions

Pyt.: Gdzie można dowiedzieć się więcej o tworzeniu niestandardowych procesów kompilacji?

A:Curated answer: Customize your Team Foundation Build process