Udostępnij za pośrednictwem


MSBuild@1 — zadanie MSBuild w wersji 1

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

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.
# 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' | '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.
# 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' | '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.

Dane wejściowe

solution - Projektu
string. Wymagane. Wartość domyślna: **/*.sln.

Jeśli chcesz utworzyć wiele projektów, określ kryteria wyszukiwania. Można użyć wieloznacznych symboli wieloznacznych z jednym folderem (*) i cyklicznych symboli wieloznacznych (**). 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 kontroli wersji serwera Team Foundation, 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.

Porada

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


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


msbuildVersion - Wersja programu MSBuild
string. Opcjonalny. Użyj polecenia , gdy msbuildLocationMethod = version. Dozwolone wartości: latest, 17.0 (MSBuild 17.0), 16.0 (MSBuild 16.0), (MSBuild 15.0), 14.015.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, zamiast tego zostanie użyta najnowsza wersja. W agencie systemu macOS (Mono) jest używany, xbuild jeśli wersja jest niższa niż 15.0.


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

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


msbuildArchitecture - Architektura programu 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.


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

Dostarcza ścieżkę do programu MSBuild.


platform - Platformy
string.

Porada

  • 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 (wybierając pozycję Czas kolejki) i odwołaj Allow się do niej w tym miejscu jako $(BuildPlatform). W ten sposób można modyfikować platformę podczas kolejkowania kompilacji i włączania tworzenia wielu konfiguracji.

configuration - Konfiguracji
string.

Porada

Zadeklaruj zmienną kompilacji, taką jak BuildConfiguration na karcie Zmienne (wybierając pozycję Czas kolejki) i odwołaj Allow się do niej w tym miejscu jako $(BuildConfiguration). W ten sposób można modyfikować platformę podczas kolejkowania kompilacji i włączania tworzenia wielu konfiguracji.


msbuildArguments - Argumenty programu MSBuild
string.

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


clean - Czyste
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 repozytorium zostanie również ustawione Clean na Falsewartość . Ustaw wartość na True , jeśli chcesz ponownie skompilować cały kod w projektach kodu. Jest to odpowiednik argumentu MSBuild /target:clean . Aby uzyskać więcej informacji, zobacz opcje repozytorium


maximumCpuCount - Równoległa kompilacja
boolean. Wartość domyślna: false.

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


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

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


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 - Szczegółowość pliku dziennika
string. Opcjonalny. Użyj polecenia , gdy createLogFile = true. Dozwolone wartości: quiet, , normalminimal, detailed, diagnostic. Wartość domyślna: normal.

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


Opcje sterowania zadania

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

Zmienne wyjściowe

Brak.

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 kompilacji programu Visual Studio. To zadanie jest wykonywane automatycznie:

  • /p:VisualStudioVersion Ustawia właściwość za Ciebie. Wymusza to program MSBuild użycie określonego zestawu obiektów docelowych, 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 MSBuild zadania . Na przykład należy go użyć, jeśli tworzysz projekty kodu poza rozwiązaniem.

Gdzie można dowiedzieć się więcej o programie MSBuild?

Dokumentacja programu MSBuild

Dokumentacja wiersza polecenia programu MSBuild

Jak mogę utworzyć wiele konfiguracji dla wielu platform?

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

    • W przypadku aplikacji .NET można określić BuildConfiguration wartości debugowania i wydania, a można określić BuildPlatform dowolną wartość procesora CPU.
    • W przypadku aplikacji języka C++ można określić BuildConfiguration wartości debugowania i wydania oraz określić BuildPlatform wartości z dowolnymi wartościami x86 i x64.
  2. Na karcie Opcje wybierz MultiConfiguration i określ Multipliersznak , rozdzielony 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 Platform argumenty i Configuration . Na przykład:

    • Platformy: $(BuildPlatform)
    • Konfiguracji: $(BuildConfiguration)

Czy mogę tworzyć pliki TFSBuild.proj?

Nie można skompilować TFSBuild.proj plików. Tego rodzaju pliki są generowane przez TFS 2005 klasy 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 MSBuild zadania.

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 w 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 pomóc w rozwiązywaniu 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 MSBuild polecenie na maszynie lokalnej przy użyciu tych samych argumentów. Zapoznaj się z poleceniem MSBuild , aby uzyskać informacje.

Porada

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

Dowiedz się więcej o agentach hostowanych przez firmę Microsoft.

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

Co jeszcze można zrobić?

Niektóre błędy programu MSBuild są spowodowane przez zmianę w programie Visual Studio, aby można było wyszukać w programie Visual Studio Developer Community, aby sprawdzić, czy ten problem został zgłoszony. Zachęcamy również do Twoich pytań, sugestii i opinii.

Wymagania

Wymaganie Opis
Typy potoków YAML, klasyczna kompilacja
Działa w Agent, DeploymentGroup
Wymagania Agenci hostowani samodzielnie muszą mieć możliwości zgodne z następującymi wymaganiami dotyczącymi 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ń Dowolne
Zmienne ustawialne Dowolne
Wersja agenta 1.95.0 lub nowsza
Kategoria zadania Kompilacja

Zobacz też