Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule opisano sposób używania zestawu .NET SDK i jego narzędzi na serwerze kompilacji. Zestaw narzędzi platformy .NET działa zarówno interaktywnie, gdzie deweloper wpisuje polecenia w wierszu polecenia, i automatycznie, gdzie serwer ciągłej integracji uruchamia skrypt kompilacji. Polecenia, opcje, dane wejściowe i wyjściowe są takie same, a jedynymi elementami, które podajesz, jest sposób na uzyskanie narzędzi i systemu do kompilowania aplikacji. Ten artykuł koncentruje się na scenariuszach pozyskiwania narzędzi dla ciągłej integracji z zaleceniami dotyczącymi projektowania i struktury skryptów kompilacji.
Opcje instalacji serwerów CI do kompilacji
Jeśli używasz usługi GitHub, instalacja jest prosta. Możesz polegać na funkcji GitHub Actions, aby zainstalować zestaw .NET SDK w przepływie pracy. Zalecanym sposobem instalacji .NET SDK w przepływie pracy jest użycie akcji actions/setup-net-core-sdk. Aby uzyskać więcej informacji, zobacz akcję Konfigurowanie zestawu .NET Core SDK w witrynie GitHub Marketplace. Aby zapoznać się z przykładami, jak to działa, zobacz Szybki start: Tworzenie przepływu pracy dla weryfikacji kompilacji w GitHub.
Instalatory natywne
Instalatory natywne są dostępne dla systemów macOS, Linux i Windows. Instalatory wymagają dostępu administratora (sudo) do serwera kompilacji. Zaletą korzystania z natywnego instalatora jest zainstalowanie wszystkich natywnych zależności wymaganych do uruchomienia narzędzi. Instalatory natywne zapewniają również instalację zestawu SDK dla całego systemu.
Użytkownicy systemu macOS powinni używać instalatorów PKG. W systemie Linux istnieje możliwość korzystania z menedżera pakietów opartego na źródłach, takiego jak apt-get dla Ubuntu lub yum dla CentOS Stream, lub korzystania bezpośrednio z pakietów, takich jak DEB lub RPM. W systemie Windows użyj instalatora MSI.
Najnowsze stabilne pliki binarne znajdują się w plikach do pobrania platformy .NET. Jeśli chcesz użyć najnowszych (i potencjalnie niestabilnych) narzędzi w wersji wstępnej, skorzystaj z linków dostępnych w repozytorium dotnet/installer na GitHubie. W przypadku dystrybucji systemu Linux dostępne są archiwa tar.gz (znane również jako tarballs). Użyj skryptów instalacyjnych w archiwach, aby zainstalować .NET.
Skrypt instalatora
Użycie skryptu instalatora umożliwia instalację nieadministracyjną na serwerze kompilacji oraz łatwe zautomatyzowanie pozyskiwania narzędzi. Skrypt zajmuje się pobieraniem narzędzi i wyodrębnianiem ich do domyślnej lub określonej lokalizacji, aby były gotowe do użycia. Można również określić wersję narzędzi, którą chcesz zainstalować, i określić, czy chcesz zainstalować cały zestaw SDK, czy tylko środowisko uruchomieniowe udostępnione.
Skrypt instalatora jest zautomatyzowany do uruchamiania na początku kompilacji w celu pobrania i zainstalowania żądanej wersji zestawu SDK. Wersja docelowa to dowolna wersja zestawu SDK, jakiej wymagają projekty do kompilacji. Skrypt umożliwia zainstalowanie zestawu SDK w lokalnym katalogu na serwerze, uruchomienie narzędzi z zainstalowanej lokalizacji, a następnie wyczyszczenie po kompilacji (lub pozwolenie usłudze CI na wykonanie tej czynności). Zapewnia to kapsułkowanie i izolację całego procesu kompilacji. Dokumentacja dotycząca skryptu instalacji znajduje się w artykule dotnet-install.
Uwaga
Azure DevOps Services
W przypadku korzystania ze skryptu instalatora zależności natywne nie są instalowane automatycznie. Należy zainstalować zależności natywne, jeśli system operacyjny ich nie ma. Aby uzyskać więcej informacji, zobacz Instalowanie platformy .NET w systemach Windows, Linux i macOS.
Przykłady konfiguracji CI
W tej sekcji opisano ręczną konfigurację przy użyciu programu PowerShell lub skryptu bash, wraz z opisami rozwiązań CI (ciągła integracja) w modelu SaaS (oprogramowanie jako usługa). Omówione rozwiązania CI w modelu SaaS to Travis CI, AppVeyor i Azure Pipelines. Aby uzyskać informacje na temat funkcji GitHub Actions, zobacz GitHub Actions i .NET.
Konfiguracja ręczna
Każda usługa SaaS ma swoje metody tworzenia i konfigurowania procesu kompilacji. Jeśli używasz innego rozwiązania SaaS niż wymienione na liście lub wymagasz dostosowania poza obsługą wstępnie spakowaną, musisz wykonać co najmniej pewną konfigurację ręczną.
Ogólnie rzecz biorąc, ręczna konfiguracja wymaga uzyskania wersji narzędzi (lub najnowszych nocnych kompilacji narzędzi) i uruchomienia skryptu kompilacji. Możesz użyć skryptu PowerShell lub bash, aby koordynować polecenia .NET lub użyć pliku projektu, który opisuje proces kompilacji. Sekcja orkiestracji zawiera więcej szczegółów na temat tych opcji.
Po utworzeniu skryptu, który wykonuje ręczną konfigurację serwera kompilacji CI, użyj go na maszynie deweloperskiej, aby lokalnie skompilować kod na potrzeby testowania. Po potwierdzeniu, że skrypt działa prawidłowo lokalnie, wdróż go na serwer kompilacji CI. Stosunkowo prosty skrypt programu PowerShell pokazuje, jak uzyskać zestaw .NET SDK i zainstalować go na serwerze kompilacji systemu Windows:
Na końcu skryptu należy podać implementację procesu kompilacji. Skrypt uzyskuje narzędzia, a następnie wykonuje proces kompilacji.
$ErrorActionPreference="Stop"
$ProgressPreference="SilentlyContinue"
# $LocalDotnet is the path to the locally-installed SDK to ensure the
# correct version of the tools are executed.
$LocalDotnet=""
# $InstallDir and $CliVersion variables can come from options to the
# script.
$InstallDir = "./cli-tools"
$CliVersion = "6.0.7"
# Test the path provided by $InstallDir to confirm it exists. If it
# does, it's removed. This is not strictly required, but it's a
# good way to reset the environment.
if (Test-Path $InstallDir)
{
rm -Recurse $InstallDir
}
New-Item -Type "directory" -Path $InstallDir
Write-Host "Downloading the CLI installer..."
# Use the Invoke-WebRequest PowerShell cmdlet to obtain the
# installation script and save it into the installation directory.
Invoke-WebRequest `
-Uri "https://dot.net/v1/dotnet-install.ps1" `
-OutFile "$InstallDir/dotnet-install.ps1"
Write-Host "Installing the CLI requested version ($CliVersion) ..."
# Install the SDK of the version specified in $CliVersion into the
# specified location ($InstallDir).
& $InstallDir/dotnet-install.ps1 -Version $CliVersion `
-InstallDir $InstallDir
Write-Host "Downloading and installation of the SDK is complete."
# $LocalDotnet holds the path to dotnet.exe for future use by the
# script.
$LocalDotnet = "$InstallDir/dotnet"
# Run the build process now. Implement your build script here.
Travis CI
Możesz skonfigurować Travis CI, aby zainstalować zestaw SDK .NET używając języka csharp oraz klucza dotnet. Aby uzyskać więcej informacji, zobacz oficjalną dokumentację travis CI dotyczącą tworzenia projektów C#, F# lub Visual Basic. Pamiętaj, że podczas uzyskiwania dostępu do informacji na temat Travis CI utrzymywanych przez społeczność, identyfikator językowy działa dla wszystkich języków platformy .NET, w tym F# i Mono.
Travis CI uruchamia zadania dla systemów macOS i Linux w macierzy kompilacji, gdzie określasz kombinację środowiska uruchomieniowego, środowiska oraz wykluczeń/dołączeń, aby uwzględnić wszystkie kombinacje kompilacji dla aplikacji. Aby uzyskać więcej informacji, zobacz artykuł Dostosowywanie kompilacji w dokumentacji Ciągłej Integracji Travis CI. Narzędzia oparte na programie MSBuild obejmują środowiska uruchomieniowe wsparcia długoterminowego (LTS) i standardowego wsparcia (STS) w pakiecie; dlatego przez zainstalowanie zestawu SDK otrzymasz wszystko, czego potrzebujesz do skompilowania.
AppVeyor
Aplikacja AppVeyor instaluje zestaw .NET 6 SDK z obrazem procesu roboczego Visual Studio 2022 kompilacji. Dostępne są inne obrazy kompilacji z różnymi wersjami zestawu .NET SDK. Aby uzyskać więcej informacji, zobacz artykuł Build worker images (Tworzenie obrazów procesów roboczych) w dokumentacji usługi AppVeyor.
Pliki binarne zestawu .NET SDK są pobierane i rozpakowywane w podkatalogu przy użyciu skryptu instalacji, a następnie są dodawane do zmiennej środowiskowej PATH . Dodaj macierz kompilacji, aby uruchomić testy integracji z wieloma wersjami zestawu .NET SDK:
environment:
matrix:
- CLI_VERSION: 6.0.7
- CLI_VERSION: Latest
Azure DevOps Services
Skonfiguruj usługi Azure DevOps Services do kompilowania projektów platformy .NET przy użyciu jednego z następujących podejść:
- Uruchom skrypt z kroku ręcznej konfiguracji przy użyciu poleceń.
- Utwórz kompilację składającą się z kilku wbudowanych zadań kompilacji usług Azure DevOps Services skonfigurowanych do korzystania z narzędzi platformy .NET.
Oba rozwiązania są prawidłowe. Za pomocą skryptu instalacji ręcznej kontrolujesz wersję otrzymywanych narzędzi, ponieważ pobierasz je w ramach kompilacji. Kompilacja jest uruchamiana na podstawie skryptu, który należy utworzyć. W tym artykule opisano tylko opcję ręczną. Aby uzyskać więcej informacji na temat tworzenia kompilacji za pomocą zadań kompilacji usługi Azure DevOps Services, zobacz dokumentację usługi Azure Pipelines .
Aby użyć skryptu konfiguracji ręcznej w usłudze Azure DevOps Services, utwórz nową definicję kompilacji i określ skrypt do uruchomienia dla kroku kompilacji. Jest to realizowane przy użyciu interfejsu użytkownika usługi Azure DevOps Services:
Zacznij od utworzenia nowej definicji kompilacji. Po dotarciu do ekranu, który udostępnia opcję zdefiniowania rodzaju kompilacji, którą chcesz utworzyć, wybierz opcję Puste .
Po skonfigurowaniu repozytorium do kompilacji zostaniesz skierowany do definicji kompilacji. Wybierz pozycję Dodaj krok kompilacji:
Zostanie wyświetlony wykaz zadań. Wykaz zawiera zadania używane w kompilacji. Ponieważ masz skrypt, wybierz przycisk Dodaj dla programu PowerShell: Uruchom skrypt programu PowerShell.
Skonfiguruj krok kompilacji. Dodaj skrypt z utworzonego repozytorium:
Koordynacja kompilacji
W przeważającej części tego dokumentu opisano sposób pozyskiwania narzędzi platformy .NET i konfigurowania różnych usług ciągłej integracji bez podawania informacji na temat organizowania czy w rzeczywistości kompilowania kodu przy użyciu platformy .NET. Opcje dotyczące struktury procesu kompilacji zależą od wielu czynników, które nie mogą być omówione w ogólny sposób w tym miejscu. Aby uzyskać więcej informacji na temat orkiestracji kompilacji dla każdej technologii, zapoznaj się z zasobami i przykładami podanymi w zestawach dokumentacji Travis CI, AppVeyor i Azure Pipelines.
Dwa ogólne podejścia do tworzenia struktury procesu kompilacji dla kodu platformy .NET przy użyciu narzędzi platformy .NET korzystają bezpośrednio z programu MSBuild lub poleceń wiersza polecenia platformy .NET. Które podejście należy zastosować, zależy od poziomu komfortu z różnymi podejściami i kompromisami w zakresie złożoności. Program MSBuild umożliwia wyrażanie procesu kompilacji jako zadań i celów, ale wiąże się z dodatkową złożonością uczenia składni pliku projektu MSBuild. Korzystanie z narzędzi wiersza polecenia platformy .NET jest być może prostsze, ale wymaga pisania logiki aranżacji w języku skryptowym, na przykład bash lub w programie PowerShell.
Wskazówka
Jedną z właściwości MSBuild, którą chcesz ustawić na true, jest ContinuousIntegrationBuild. Ta właściwość umożliwia ustawienia, które mają zastosowanie tylko do oficjalnych kompilacji, w przeciwieństwie do kompilacji lokalnych.