Udostępnij przez


MSBuild@1 — zadanie MSBuild w wersji 1

To zadanie służy do kompilowania za pomocą programu MSBuild.

Uwaga / Notatka

Aby uzyskać więcej informacji na temat programu MSBuild, zobacz Jak program MSBuild kompiluje projekty.

Składnia

# MSBuild v1
# Build with MSBuild.
- task: MSBuild@1
  inputs:
    solution: '**/*.sln' # string. Required. Project. Default: **/*.sln.
    #msbuildLocationMethod: 'version' # 'version' | 'location'. MSBuild. Default: version.
    #msbuildVersion: 'latest' # 'latest' | '17.0' | '16.0' | '15.0' | '14.0' | '12.0' | '4.0'. Optional. Use when msbuildLocationMethod = version. MSBuild Version. Default: latest.
    #msbuildArchitecture: 'x86' # 'x86' | 'x64'. Optional. Use when msbuildLocationMethod = version. MSBuild Architecture. Default: x86.
    #msbuildLocation: # string. Optional. Use when msbuildLocationMethod = location. Path to MSBuild. 
    #platform: # string. Platform. 
    #configuration: # string. Configuration. 
    #msbuildArguments: # string. MSBuild Arguments. 
    #clean: false # boolean. Clean. Default: false.
  # Advanced
    #maximumCpuCount: false # boolean. Build in Parallel. Default: false.
    #restoreNugetPackages: false # boolean. Restore NuGet Packages. Default: false.
    #logProjectEvents: false # boolean. Record Project Details. Default: false.
    #createLogFile: false # boolean. Create Log File. Default: false.
    #logFileVerbosity: 'normal' # 'quiet' | 'minimal' | 'normal' | 'detailed' | 'diagnostic'. Optional. Use when createLogFile = true. Log File Verbosity. Default: normal.

Dane wejściowe

solution - Projekt
string. To jest wymagane. Wartość domyślna: **/*.sln.

Jeśli chcesz utworzyć wiele projektów, określ kryteria wyszukiwania. Symbol wieloznaczny z jednym folderem (*) i cykliczne symbole wieloznaczne (**). Na przykład **.*proj wyszukuje wszystkie pliki projektu MSBuild (.*proj) we wszystkich podkatalogach.

Upewnij się, że określone projekty są pobierane przez ten potok kompilacji. Na karcie Repozytorium:

  • Jeśli używasz kontrolera TFVC, upewnij się, że projekt jest elementem podrzędnym jednego z mapowań na karcie Repozytorium.
  • Jeśli używasz usługi Git, upewnij się, że projekt lub projekt znajduje się w repozytorium Git, w gałęzi, którą tworzysz.

Wskazówka

Jeśli tworzysz rozwiązanie, zalecamy użycie zadania kompilacji programu Visual Studio zamiast zadania MSBuild.

Aby uzyskać informacje na temat różnic między kompilacją programu MSBuild i programu Visual Studio, zobacz Kompilacje programu Visual Studio a kompilacje MSBuild.exe.


msbuildLocationMethod - MSBuild
string. Dozwolone wartości: version, location (Określ lokalizację). Wartość domyślna: version.


msbuildVersion - wersji programu MSBuild
string. Opcjonalny. Użyj polecenia , gdy msbuildLocationMethod = version. Dozwolone wartości: latest, 17.0 (MSBuild 17.0), 16.0 (MSBuild 16.0), 15.0 (MSBuild 15.0), 14.0 (MSBuild 14.0), 12.0 (MSBuild 12.0), 4.0 (MSBuild 4.0). Wartość domyślna: latest.

Jeśli nie można odnaleźć preferowanej wersji, zostanie użyta najnowsza wersja. W agencie systemu macOS xbuild (Mono) jest używana, jeśli wersja jest niższa niż 15.0.


architektury msbuildArchitecture - MSBuild
string. Opcjonalny. Użyj polecenia , gdy msbuildLocationMethod = version. Dozwolone wartości: x86 (MSBuild x86), x64 (MSBuild x64). Wartość domyślna: x86.

Dostarcza architekturę MSBuild (x86, x64) do uruchomienia.


ścieżka msbuildLocation - do MSBuild
string. Opcjonalny. Użyj polecenia , gdy msbuildLocationMethod = location.

Dostarcza ścieżkę do programu MSBuild.


platformy platform -
string.

Wskazówka

  • Jeśli używasz pliku projektu MSBuild (.*proj) zamiast rozwiązania, określ AnyCPU (bez białych znaków).
  • Zadeklaruj zmienną kompilacji, taką jak BuildPlatform na karcie Zmienne (wybieranie Allow w czasie kolejki) i odwołuj się do niej w tym miejscu jako $(BuildPlatform). Dzięki temu można modyfikować platformę podczas kolejkowania kompilacji i włączania kompilowania wielu konfiguracji.

konfiguracji configuration -
string.

Wskazówka

Zadeklaruj zmienną kompilacji, taką jak BuildConfiguration na karcie Zmienne (wybieranie Allow w czasie kolejki) i odwołuj się do niej w tym miejscu jako $(BuildConfiguration). Dzięki temu można modyfikować platformę podczas kolejkowania kompilacji i włączania kompilowania wielu konfiguracji.


msbuildArguments - argumenty MSBuild
string.

Określa dodatkowe argumenty przekazywane do msBuild (w systemie Windows) i xbuild (w systemie macOS).


clean - Czyszczenie
boolean. Wartość domyślna: false.

Ustaw wartość na False, jeśli chcesz utworzyć tę kompilację przyrostową. To ustawienie może skrócić czas kompilacji, zwłaszcza jeśli baza kodu jest duża. Ta opcja nie ma praktycznego wpływu, chyba że ustawiono również repozytorium Clean na wartość False. Ustaw wartość na True, jeśli chcesz ponownie skompilować cały kod w projektach kodu. Jest to odpowiednik argumentu /target:clean MSBuild. Aby uzyskać więcej informacji, zobacz opcje repozytorium


maximumCpuCount - kompilacji równoległej
boolean. Wartość domyślna: false.

Jeśli konfiguracja docelowa programu MSBuild jest zgodna z równoległym tworzeniem, możesz sprawdzić te dane wejściowe, aby przekazać przełącznik /m do programu MSBuild (tylko system Windows). Jeśli konfiguracja docelowa nie jest zgodna z kompilacją równolegle, sprawdzenie tej opcji może spowodować wystąpienie błędów file-in-use lub sporadycznych lub niespójnych błędów kompilacji.


restoreNugetPackages - przywracanie pakietów NuGet
boolean. Wartość domyślna: false.

Ta opcja jest przestarzała. Aby przywrócić pakiety NuGet, przed kompilacją dodaj zadanie NuGet.


logProjectEvents - rejestrowanie szczegółów projektu
boolean. Wartość domyślna: false.

Opcjonalnie rejestruje szczegóły osi czasu dla każdego projektu (tylko system Windows).


createLogFile - tworzenie pliku dziennika
boolean. Wartość domyślna: false.

Opcjonalnie tworzy plik dziennika (tylko system Windows).


logFileVerbosity - pliku dziennika
string. Opcjonalny. Użyj polecenia , gdy createLogFile = true. Dozwolone wartości: quiet, minimal, normal, detailed, diagnostic. Wartość domyślna: normal.

Określa szczegółowość pliku dziennika.


Opcje sterowania zadaniami

Wszystkie zadania mają opcje sterowania oprócz danych wejściowych zadań podrzędnych. Aby uzyskać więcej informacji, zobacz opcje kontroli i typowe właściwości zadań.

Zmienne wyjściowe

Żaden.

Uwagi

Czy należy użyć zadania kompilacji programu Visual Studio lub zadania MSBuild?

Jeśli tworzysz rozwiązanie, w większości przypadków należy użyć zadania Visual Studio Build. To zadanie jest wykonywane automatycznie:

  • Ustawia właściwość /p:VisualStudioVersion. Wymusza to program MSBuild użycie określonego zestawu celów, które zwiększają prawdopodobieństwo pomyślnej kompilacji.
  • Określa argument wersji programu MSBuild.

W niektórych przypadkach może być konieczne użycie zadania MSBuild. Na przykład należy go użyć, jeśli tworzysz projekty kodu poza rozwiązaniem.

Gdzie mogę dowiedzieć się więcej o programie MSBuild?

referencja programu MSBuild

odwołania wiersza polecenia MSBuild

Jak utworzyć wiele konfiguracji dla wielu platform?

  1. Na karcie Zmienne upewnij się, że masz zmienne zdefiniowane dla konfiguracji i platform. Aby określić wiele wartości, rozdziel je przecinkami. Na przykład:

    • W przypadku aplikacji .NET można określić BuildConfiguration z wartościami debugowania i wydania, a BuildPlatform można określić przy użyciu dowolnej wartości procesora CPU.
    • W przypadku aplikacji języka C++ można określić BuildConfiguration z wartościami debugowania i wydania. Można określić BuildPlatform z dowolnymi wartościami x86 i x64.
  2. Na karcie Opcje wybierz pozycję MultiConfiguration i określ Multipliersrozdzielone przecinkami. Na przykład: BuildConfiguration, BuildPlatform Wybierz Parallel, jeśli chcesz dystrybuować zadania (po jednym dla każdej kombinacji wartości) do wielu agentów równolegle, jeśli są dostępne.

  3. Na karcie Kompilacja wybierz ten krok i określ argumenty Platform i Configuration. Na przykład:

    • Podest: $(BuildPlatform)
    • Konfiguracja: $(BuildConfiguration)

Czy mogę skompilować pliki TFSBuild.proj?

Nie można skompilować plików TFSBuild.proj. Tego rodzaju pliki są generowane przez TFS 2005 i TFS 2008. Te pliki zawierają zadania, a obiekty docelowe są obsługiwane tylko przy użyciu kompilacji XAML.

Rozwiązywanie problemów

Ta sekcja zawiera porady dotyczące rozwiązywania typowych problemów, które użytkownik może napotkać podczas korzystania z zadania MSBuild.

Kompilacja nie powiodła się z powodu następującego błędu: Wystąpił błąd wewnętrzny podczas uruchamiania programu MSBuild

Możliwe przyczyny
  • Zmień wersję programu MSBuild.
  • Problemy z rozszerzeniem innej firmy.
  • Nowe aktualizacje programu Visual Studio, które mogą powodować brakujące zestawy na agencie kompilacji.
  • Przeniesiono lub usunięto niektóre z niezbędnych pakietów NuGet.
Sugestie dotyczące rozwiązywania problemów
Uruchamianie potoku z diagnostyką w celu pobrania szczegółowych dzienników

Jedną z dostępnych opcji diagnozowania problemu jest przyjrzenie się wygenerowanym dziennikom. Dzienniki potoku można wyświetlić, wybierając odpowiednie zadanie i zadanie w podsumowaniu przebiegu potoku.

Aby uzyskać dzienniki wykonywania potoku Pobierz dzienniki w celu zdiagnozowania problemów

Możesz również skonfigurować i pobrać dostosowany dziennik pełny, aby ułatwić rozwiązywanie problemów:

Oprócz dzienników diagnostycznych potoku można również sprawdzić te inne typy dzienników, które zawierają więcej informacji, aby ułatwić debugowanie i rozwiązywanie problemu:

Spróbuj odtworzyć błąd lokalnie

Jeśli używasz hostowanego agenta kompilacji, możesz spróbować odtworzyć błąd lokalnie. Pomoże to zawęzić, czy awaria jest wynikiem agenta kompilacji, czy zadania kompilacji.

Uruchom to samo polecenie MSBuild na komputerze lokalnym przy użyciu tych samych argumentów. Zapoznaj się polecenia MSBuild.

Wskazówka

Jeśli możesz odtworzyć problem na komputerze lokalnym, następnym krokiem jest zbadanie problemu msBuild.

Dowiedz się więcej o agentów hostowanych przez firmę Microsoft.

Aby skonfigurować własnego agenta i uruchomić zadania kompilacji:

Co jeszcze mogę zrobić?

Niektóre błędy programu MSBuild są spowodowane przez zmianę w programie Visual Studio, dzięki czemu możesz wyszukać społeczności deweloperów programu Visual Studio, aby sprawdzić, czy ten problem został zgłoszony. Z zadowoleniem przyjmujemy również Twoje pytania, sugestie i opinie.

Wymagania

Wymaganie Opis
Typy potoków YAML, klasyczna kompilacja
Działa na Agent, grupa wdrożeniowa
Wymagania Agenci hostowani samodzielnie muszą mieć możliwości zgodne z następującymi wymaganiami do uruchamiania zadań korzystających z tego zadania: msbuild
możliwości To zadanie nie spełnia żadnych wymagań dotyczących kolejnych zadań w zadaniu.
ograniczenia poleceń Jakikolwiek
zmienne ustawiane Jakikolwiek
Wersja agenta 1.95.0 lub nowsza
Kategoria zadań Zbuduj

Zobacz też

  • zadania kompilacji programu Visual Studio