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.0
15.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.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
.
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łajAllow
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 False
wartość .
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
, , normal
minimal
, 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 wiersza polecenia programu MSBuild
Jak mogę utworzyć wiele konfiguracji dla wielu platform?
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.
- W przypadku aplikacji .NET można określić
Na karcie Opcje wybierz
MultiConfiguration
i określMultipliers
znak , rozdzielony przecinkami. Na przykład:BuildConfiguration, BuildPlatform
wybierzParallel
, jeśli chcesz dystrybuować zadania (po jednym dla każdej kombinacji wartości) do wielu agentów równolegle, jeśli są dostępne.Na karcie Kompilacja wybierz ten krok i określ
Platform
argumenty iConfiguration
. Na przykład:- Platformy:
$(BuildPlatform)
- Konfiguracji:
$(BuildConfiguration)
- Platformy:
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
- Spróbuj odtworzyć błąd lokalnie
- Co jeszcze można zrobić?
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:
- Dzienniki diagnostyczne procesu roboczego
- Dzienniki diagnostyczne agenta
- Inne dzienniki (środowisko i możliwości)
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 |