Tworzenie, testowanie i wdrażanie aplikacji platformy .NET Core

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018

Użyj potoku, aby automatycznie skompilować i przetestować projekty platformy .NET Core. Dowiedz się, jak wykonywać następujące zadania:

Uwaga

Aby uzyskać pomoc dotyczącą projektów .NET Framework, zobacz Tworzenie aplikacji ASP.NET za pomocą .NET Framework.

Uwaga

W Microsoft Team Foundation Server (TFS) 2018 i poprzednich wersjach potoki kompilacji i wydania są nazywane definicjami, przebiegi są nazywane kompilacjami, połączenia usług są nazywane punktami końcowymi usługi, etapami są nazywane środowiskami, a zadania są nazywane fazami.

Tworzenie pierwszego potoku

Czy dopiero zaczynasz Azure Pipelines? Jeśli tak, zalecamy najpierw wypróbowanie poniższej sekcji.

Tworzenie projektu platformy .NET

Jeśli nie masz projektu platformy .NET do pracy, utwórz nowy i przekaż kod do repozytorium GitHub lub Azure Repos. Rozpocznij od zainstalowania najnowszego zestawu .NET 6.0 SDK.

Utwórz nową aplikację internetową platformy .NET 6.

dotnet new webapp -f net6.0

W tej samej sesji terminalu uruchom aplikację lokalnie przy użyciu dotnet run polecenia z katalogu projektu.

dotnet run

Przekazywanie kodu

Przekaż kod do nowej aplikacji internetowej GitHub lub Azure Repos:

Zaloguj się do Azure Pipelines

Zaloguj się do Azure Pipelines. Po zalogowaniu przeglądarka przejdzie do https://dev.azure.com/my-organization-name pulpitu nawigacyjnego Azure DevOps i wyświetli go.

W wybranej organizacji utwórz projekt. Jeśli nie masz żadnych projektów w organizacji, zobaczysz ekran Tworzenie projektu, aby rozpocząć pracę . W przeciwnym razie wybierz przycisk Nowy Project w prawym górnym rogu pulpitu nawigacyjnego.

Tworzenie potoku

  1. Zaloguj się do organizacji Azure DevOps i przejdź do projektu.

  2. Przejdź do Pipelines, a następnie wybierz pozycję Nowy potok.

  3. Wykonaj kroki kreatora, wybierając najpierw GitHub jako lokalizację kodu źródłowego.

  4. Być może nastąpi przekierowanie do GitHub w celu zalogowania się. Jeśli tak, wprowadź poświadczenia GitHub.

  5. Po wyświetleniu listy repozytoriów wybierz repozytorium.

  6. Być może nastąpi przekierowanie do GitHub w celu zainstalowania aplikacji Azure Pipelines. Jeśli tak, wybierz pozycję Zatwierdź instalację&.

Po wyświetleniu karty Konfiguruj wybierz pozycję ASP.NET Core.

  1. Sprawdź nowy potok, aby zobaczyć, co robi YAML. Gdy wszystko będzie gotowe, wybierz pozycję Zapisz i uruchom.

    Save and run button in a new YAML pipeline

  2. Zatwierdź nowy plik azure-pipelines.yml w repozytorium. Po zapoznaniu się z komunikatem wybierz pozycję Zapisz i uruchom ponownie.

    Jeśli chcesz obserwować działanie potoku, wybierz zadanie kompilacji.

    Ponieważ twój kod wydaje się być dobrym dopasowaniem szablonu ASP.NET Core, automatycznie utworzyliśmy potok.

    Masz teraz działający potok YAML (azure-pipelines.yml) w repozytorium, który jest gotowy do dostosowania.

  3. Gdy wszystko będzie gotowe do wprowadzenia zmian w potoku, wybierz go na stronie Pipelines, a następnie edytujazure-pipelines.yml plik.

Przeczytaj więcej, aby dowiedzieć się więcej na temat bardziej typowych sposobów dostosowywania potoku.

YAML

  1. azure-pipelines.yml Dodaj plik w repozytorium. Dostosuj poniższy fragment kodu dla kompilacji.
trigger:
- master

pool: Default

variables:
  buildConfiguration: 'Release'

# do this before all your .NET Core tasks
steps:
- task: DotNetCoreInstaller@2
  inputs:
    version: '2.2.402' # replace this value with the version that you need for your project
- script: dotnet build --configuration $(buildConfiguration)
  displayName: 'dotnet build $(buildConfiguration)'
  1. Utwórz potok i wybierz szablon YAML .

  2. Ustaw pulę agentów i ścieżkę pliku YAML dla potoku.

  3. Zapisz potok i utwórz kolejkę kompilacji. Gdy zostanie wyświetlony komunikat Kompilacja #nnnnnnnn.n został wyświetlony w kolejce , wybierz link numer, aby zobaczyć potok w akcji.

  4. Gdy wszystko będzie gotowe do wprowadzenia zmian w potoku, edytuj go.

Przeczytaj więcej, aby dowiedzieć się więcej na temat bardziej typowych sposobów dostosowywania potoku.

Klasyczny

  1. Utwórz potok i wybierz szablon Pusty potok .

  2. W katalogu zadań znajdź i dodaj zadanie .NET Core . Następujące zadanie jest uruchamiane dotnet build w celu skompilowania kodu w przykładowym repozytorium.

  3. Zapisz potok i utwórz kolejkę kompilacji. Gdy zostanie wyświetlony komunikat Kompilacja #nnnnnnnn.n został wyświetlony w kolejce , wybierz link numer, aby zobaczyć potok w akcji.

    Masz teraz działający potok, który jest gotowy do dostosowania.

  4. Gdy wszystko będzie gotowe do wprowadzenia zmian w potoku, edytuj go.

Przeczytaj więcej, aby dowiedzieć się więcej na temat bardziej typowych sposobów dostosowywania potoku.

Środowisko kompilacji

Użyj Azure Pipelines, aby skompilować projekty platformy .NET Core. Twórz projekty na Windows, Linux lub macOS bez konieczności konfigurowania infrastruktury. Agenci hostowani przez firmę Microsoft w Azure Pipelines zawierają kilka wstępnie zainstalowanych wersji zestawów SDK platformy .NET Core.

Ubuntu 18.04 jest ustawiony tutaj w pliku YAML.

pool:
  vmImage: 'ubuntu-18.04' # examples of other options: 'macOS-10.15', 'windows-2019'

Aby uzyskać więcej przykładów, zobacz Agenci hostowani przez firmę Microsoft , aby uzyskać pełną listę obrazów i puli .

Agenci hostowani przez firmę Microsoft nie zawierają niektórych starszych wersji zestawu .NET Core SDK. Nie obejmują one również zwykle wersji wstępnych. Jeśli potrzebujesz tego rodzaju zestawów SDK na agentach hostowanych przez firmę Microsoft, dodaj zadanie UseDotNet@2 do pliku YAML.

Aby zainstalować wersję zapoznawcza zestawu SDK 5.0.x na potrzeby kompilowania i 3.0.x na potrzeby uruchamiania testów przeznaczonych dla platformy NET Core 3.0.x, dodaj następujący fragment kodu:

steps:
- task: UseDotNet@2
  inputs:
    version: '5.0.x'
    includePreviewVersions: true # Required for preview versions

- task: UseDotNet@2
  inputs:
    version: '3.0.x'
    packageType: runtime

Windows agenci zawierają już środowisko uruchomieniowe platformy .NET Core. Aby zainstalować nowszy zestaw SDK, ustaw wartość true na performMultiLevelLookup w następującym fragmencie kodu:

steps:
- task: UseDotNet@2
  displayName: 'Install .NET Core SDK'
  inputs:
    version: 5.0.x
    performMultiLevelLookup: true
    includePreviewVersions: true # Required for preview versions

Porada

Aby zaoszczędzić koszty uruchamiania instalatora narzędzi, możesz skonfigurować własnego agenta. Zobacz Linux, macOS lub Windows. Możesz również użyć własnych agentów, aby zaoszczędzić dodatkowy czas, jeśli masz duże repozytorium lub uruchamiasz kompilacje przyrostowe. Agent hostowany samodzielnie może również pomóc w korzystaniu z zestawów SDK w wersji zapoznawczej lub prywatnych, które nie są oficjalnie obsługiwane przez Azure DevOps lub są dostępne tylko w środowiskach firmowych lub lokalnych.

Projekty platformy .NET Core można tworzyć przy użyciu zestawu .NET Core SDK i środowiska uruchomieniowego w Windows, Linux lub macOS. Kompilacje są uruchamiane na własnym agencie. Upewnij się, że masz wymaganą wersję zestawu .NET Core SDK i środowiska uruchomieniowego zainstalowanego na agencie.

Przywracanie zależności

NuGet to popularny sposób, aby zależeć od kodu, którego nie kompilujesz. Możesz pobrać pakiety NuGet i narzędzia specyficzne dla projektu określone w pliku projektu, uruchamiając dotnet restore polecenie za pomocą zadania platformy .NET Core lub bezpośrednio w skrycie w potoku.

Pakiety NuGet można pobrać z witryny Azure Artifacts, NuGet.org lub innego zewnętrznego lub wewnętrznego repozytorium NuGet. Zadanie platformy .NET Core jest szczególnie przydatne do przywracania pakietów z uwierzytelnionych źródeł danych NuGet.

Ten potok używa kanału informacyjnego artefaktu dla dotnet restore zadania interfejsu wiersza polecenia platformy .NET Core.

trigger:
- master

pool:
  vmImage: 'windows-latest'

variables:
  buildConfiguration: 'Release'

steps:
- task: DotNetCoreCLI@2
  inputs:
    command: 'restore'
    feedsToUse: 'select'
    vstsFeed: 'my-vsts-feed' # A series of numbers and letters

- task: DotNetCoreCLI@2
  inputs:
    command: 'build'
    arguments: '--configuration $(buildConfiguration)'
  displayName: 'dotnet build $(buildConfiguration)'

Pakiety NuGet można pobrać z witryny NuGet.org.

dotnet restore wewnętrznie używa wersji spakowanej NuGet.exe z zestawem .NET Core SDK. dotnet restore program może przywracać tylko pakiety określone w plikach projektu .csproj .NET Core. Jeśli masz również projekt microsoft .NET Framework w rozwiązaniu lub użyj package.json polecenia w celu określenia zależności, użyj zadania NuGet, aby przywrócić te zależności.

W zestawie .NET Core SDK w wersji 2.0 lub nowszej pakiety są automatycznie przywracane podczas uruchamiania innych poleceń, takich jak dotnet build.

W zestawie .NET Core SDK w wersji 2.0 lub nowszej pakiety są automatycznie przywracane podczas uruchamiania innych poleceń, takich jak dotnet build. Jednak nadal może być konieczne użycie zadania platformy .NET Core w celu przywrócenia pakietów, jeśli używasz uwierzytelnionego źródła danych.

Kompilacje mogą czasami zakończyć się niepowodzeniem z powodu problemów z połączeniem podczas przywracania pakietów z witryny NuGet.org. Można użyć Azure Artifacts z nadrzędnymi źródłami i buforować pakiety. Poświadczenia potoku są używane automatycznie podczas nawiązywania połączenia z Azure Artifacts. Te poświadczenia są zwykle uzyskiwane z konta usługi kompilacji kolekcji Project.

Jeśli chcesz określić repozytorium NuGet, umieść adresy URL w NuGet.config pliku w repozytorium. Jeśli źródło danych jest uwierzytelnione, zarządzaj poświadczeniami, tworząc połączenie usługi NuGet na karcie Usługi w obszarze Project Ustawienia.

Jeśli używasz agentów hostowanych przez firmę Microsoft, otrzymujesz nową maszynę za każdym razem, gdy uruchamiasz kompilację, co oznacza przywracanie pakietów za każdym razem. Przywracanie może zająć znaczną ilość czasu. Aby temu zapobiec, możesz użyć Azure Artifacts lub własnego agenta z korzyścią korzystania z pamięci podręcznej pakietu.

Aby przywrócić pakiety z zewnętrznego źródła danych niestandardowych, użyj następującego zadania platformy .NET Core :

# do this before your build tasks
steps:
- task: DotNetCoreCLI@2
  displayName: Restore
  inputs:
    command: restore
    projects: '**/*.csproj'
    feedsToUse: config
    nugetConfigPath: NuGet.config    # Relative to root of the repository
    externalFeedCredentials: <Name of the NuGet service connection>
# ...

Aby uzyskać więcej informacji na temat połączeń usługi NuGet, zobacz publikowanie w kanałach informacyjnych NuGet.

  1. Wybierz pozycję Zadania w potoku. Wybierz zadanie, które uruchamia zadania kompilacji. Następnie wybierz pozycję + , aby dodać nowe zadanie do tego zadania.

  2. W katalogu zadań znajdź i dodaj zadanie platformy .NET Core .

  3. Wybierz zadanie, a w polu Command (Polecenie) wybierz pozycję restore (Przywróć).

  4. Określ inne opcje potrzebne dla tego zadania. Następnie zapisz kompilację.

Uwaga

Upewnij się, że w pliku określono NuGet.config niestandardowe źródło danych i że poświadczenia są określone w połączeniu usługi NuGet.

Kompilowanie projektu

Projekt platformy .NET Core można skompilować, uruchamiając dotnet build polecenie w potoku lub za pomocą zadania platformy .NET Core.

Aby skompilować projekt przy użyciu zadania platformy .NET Core, dodaj następujący fragment kodu do azure-pipelines.yml pliku:

steps:
- task: DotNetCoreCLI@2
  displayName: Build
  inputs:
    command: build
    projects: '**/*.csproj'
    arguments: '--configuration $(buildConfiguration)' # Update this to match your need

Możesz uruchomić dowolne niestandardowe polecenie dotnet w potoku. W poniższym przykładzie pokazano, jak zainstalować i użyć narzędzia globalnego platformy .NET dotnetsay:

steps:
- task: DotNetCoreCLI@2
  displayName: 'Install dotnetsay'
  inputs:
    command: custom
    custom: tool
    arguments: 'install -g dotnetsay'

Kompilacja

  1. Wybierz pozycję Zadania w potoku. Wybierz zadanie, które uruchamia zadania kompilacji. Następnie wybierz pozycję + , aby dodać nowe zadanie do tego zadania.

  2. W katalogu zadań znajdź i dodaj zadanie platformy .NET Core .

  3. Wybierz zadanie i w polu Command (Polecenie) wybierz pozycję build or publish ( Kompilacja lub publikowanie).

  4. Określ inne opcje potrzebne dla tego zadania, a następnie zapisz kompilację.

Instalowanie narzędzia

Aby zainstalować globalne narzędzie platformy .NET Core, takie jak dotnetsay w kompilacji uruchomionej na Windows, wykonaj następujące kroki:

  1. Dodaj zadanie .NET Core i ustaw następujące właściwości:

    • Polecenie: niestandardowe.
      • Ścieżka do projektów: pozostaw puste.
    • Polecenie niestandardowe: narzędzie.
    • Argumenty: install -g dotnetsay.
  2. Dodaj zadanie wiersza polecenia i ustaw następujące właściwości:

    • Skrypt:dotnetsay.

Uruchamianie testów

Jeśli masz projekty testowe w repozytorium, użyj zadania .NET Core do uruchamiania testów jednostkowych przy użyciu struktur testowych, takich jak MSTest, xUnit i NUnit.Projekt testowy musi odwoływać się do zestawu Microsoft.NET.Test.SDK w wersji 15.8.0 lub nowszej. Wyniki testów są automatycznie publikowane w usłudze. Te wyniki są dostępne w podsumowaniu kompilacji i mogą służyć do rozwiązywania problemów z testami i analizą chronometrażu testów.

Dodaj następujący fragment kodu do azure-pipelines.yml pliku:

steps:
# ...
# do this after other tasks such as building
- task: DotNetCoreCLI@2
  inputs:
    command: test
    projects: '**/*Tests/*.csproj'
    arguments: '--configuration $(buildConfiguration)'

Alternatywą jest uruchomienie dotnet test polecenia z określonym rejestratorem, a następnie użycie zadania Publikuj wyniki testu :

steps:
# ...
# do this after your tests have run
- script: dotnet test <test-project> --logger trx
- task: PublishTestResults@2
  condition: succeededOrFailed()
  inputs:
    testRunner: VSTest
    testResultsFiles: '**/*.trx'

Użyj zadania platformy .NET Core z zestawem poleceń do testowania. Ścieżka do projektów powinna odwoływać się do projektów testowych w rozwiązaniu.

Zbieranie pokrycia kodu

Jeśli tworzysz na platformie Windows, metryki pokrycia kodu można zbierać przy użyciu wbudowanego modułu zbierającego dane pokrycia. Projekt testowy musi odwoływać się do zestawu Microsoft.NET.Test.SDK w wersji 15.8.0 lub nowszej. Jeśli do uruchamiania testów używasz zadania platformy .NET Core , dane pokrycia są automatycznie publikowane na serwerze. Plik pokrycia można pobrać z podsumowania kompilacji do wyświetlania w Visual Studio.

Dodaj następujący fragment kodu do azure-pipelines.yml pliku:

steps:
# ...
# do this after other tasks such as building
- task: DotNetCoreCLI@2
  inputs:
    command: test
    projects: '**/*Tests/*.csproj'
    arguments: '--configuration $(buildConfiguration) --collect "Code coverage"'

Jeśli zdecydujesz się uruchomić dotnet test polecenie, określ rejestrator wyników testów i opcje pokrycia. Następnie użyj zadania Publikuj wyniki testu :

steps:
# ...
# do this after your tests have run
- script: dotnet test <test-project> --logger trx --collect "Code coverage"
- task: PublishTestResults@2
  inputs:
    testRunner: VSTest
    testResultsFiles: '**/*.trx'
  1. Dodaj zadanie .NET Core do zadania kompilacji i ustaw następujące właściwości:

    • Polecenie: test.
    • Ścieżka do projektów: powinna odwoływać się do projektów testowych w rozwiązaniu.
    • Argumenty: --configuration $(BuildConfiguration) --collect "Code coverage".
  2. Upewnij się, że opcja Publikuj wyniki testu pozostaje zaznaczona.

Zbieranie metryk pokrycia kodu za pomocą coverletu

Jeśli tworzysz elementy w systemie Linux lub macOS, możesz użyć rozwiązania Coverlet lub podobnego narzędzia do zbierania metryk pokrycia kodu.

Wyniki pokrycia kodu można opublikować na serwerze za pomocą zadania Publikuj wyniki pokrycia kodu . Narzędzie pokrycia musi być skonfigurowane do generowania wyników w formacie pokrycia Cobertura lub JaCoCo.

Aby uruchomić testy i opublikować pokrycie kodu za pomocą rozwiązania Coverlet, wykonaj następujące zadania:

  • Dodaj odwołanie do coverlet.msbuild pakietu NuGet w projektach testowych dla projektów .NET poniżej platformy .NET 5. W przypadku platformy .NET 5 dodaj odwołanie do coverlet.collector pakietu NuGet.
  • Dodaj następujący fragment kodu do azure-pipelines.yml pliku:
- task: UseDotNet@2
  inputs:
    version: '5.0.x'
    includePreviewVersions: true # Required for preview versions
  
- task: DotNetCoreCLI@2
  displayName: 'dotnet build'
  inputs:
    command: 'build'
    configuration: $(buildConfiguration)
  
- task: DotNetCoreCLI@2
  displayName: 'dotnet test'
  inputs:
    command: 'test'
    arguments: '--configuration $(buildConfiguration) --collect:"XPlat Code Coverage" -- DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.Format=cobertura'
    publishTestResults: true
    projects: 'MyTestLibrary' # update with your test project directory
  
- task: PublishCodeCoverageResults@1
  displayName: 'Publish code coverage report'
  inputs:
    codeCoverageTool: 'Cobertura'
    summaryFileLocation: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'

Pakowanie i dostarczanie kodu

Przekaż dane wyjściowe kompilacji do Azure Pipelines. Możesz utworzyć i opublikować pakiet NuGet lub spakować dane wyjściowe kompilacji w pliku .zip w celu wdrożenia w aplikacji internetowej.

Publikowanie artefaktów w Azure Pipelines

Aby opublikować dane wyjściowe kompilacji platformy .NET, wykonaj następujące zadania:

  • Uruchom polecenie dotnet publish --output $(Build.ArtifactStagingDirectory) w interfejsie wiersza polecenia lub dodaj zadanie DotNetCoreCLI@2 za pomocą polecenia publikowania.
  • Opublikuj artefakt przy użyciu zadania Publikuj artefakt.

Dodaj następujący fragment kodu do azure-pipelines.yml pliku:

steps:

- task: DotNetCoreCLI@2
  inputs:
    command: publish
    publishWebProjects: True
    arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
    zipAfterPublish: True

# this code takes all the files in $(Build.ArtifactStagingDirectory) and uploads them as an artifact of your build.
- task: PublishPipelineArtifact@1
  inputs:
    targetPath: '$(Build.ArtifactStagingDirectory)' 
    artifactName: 'myWebsiteName'

Uwaga

Zadanie dotNetCoreCLI@2 ma publishWebProjects dane wejściowe, które są domyślnie ustawione na wartość true . To zadanie domyślnie publikuje wszystkie projekty internetowe w repozytorium. Więcej informacji i pomocy można znaleźć w zadaniu open source w GitHub.

Aby skopiować więcej plików do katalogu kompilacji przed opublikowaniem, użyj narzędzia : kopiowanie plików.

Publikowanie w kanale informacyjnym NuGet

Aby utworzyć i opublikować pakiet NuGet, dodaj następujący fragment kodu:

steps:
# ...
# do this near the end of your pipeline in most cases
- script: dotnet pack /p:PackageVersion=$(version)  # define version variable elsewhere in your pipeline
- task: NuGetAuthenticate@0
  input:
    nuGetServiceConnections: '<Name of the NuGet service connection>'
- task: NuGetCommand@2
  inputs:
    command: push
    nuGetFeedType: external
    publishFeedCredentials: '<Name of the NuGet service connection>'
    versioningScheme: byEnvVar
    versionEnvVar: version

Aby uzyskać więcej informacji na temat przechowywania wersji i publikowania pakietów NuGet, zobacz Publikowanie w kanałach informacyjnych NuGet.

Wdrażanie aplikacji internetowej

Aby utworzyć archiwum plików .zip, które jest gotowe do publikowania w aplikacji internetowej, dodaj następujący fragment kodu:

steps:
# ...
# do this after you've built your app, near the end of your pipeline in most cases
# for example, you do this before you deploy to an Azure web app on Windows
- task: DotNetCoreCLI@2
  inputs:
    command: publish
    publishWebProjects: True
    arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
    zipAfterPublish: True

Aby opublikować to archiwum w aplikacji internetowej, zobacz Wdrażanie usługi Azure Web Apps.

Publikowanie artefaktów w Azure Pipelines

Użyj zadania Publikuj Artifacts, aby opublikować dane wyjściowe kompilacji w celu Azure Pipelines.

Publikowanie w kanale informacyjnym NuGet

Jeśli chcesz opublikować kod w kanale informacyjnym NuGet, wykonaj następujące czynności:

  1. Użyj zadania platformy .NET Core z zestawem poleceń do spakowania.

  2. Opublikuj pakiet w kanale informacyjnym NuGet.

Wdrażanie aplikacji internetowej

  1. Użyj zadania .NET Core z poleceniem ustawionym na publikowanie.

  2. Upewnij się, że wybrano opcję utworzenia archiwum plików .zip.

  3. Aby opublikować to archiwum w aplikacji internetowej, zobacz Wdrażanie usługi Azure Web Apps.

Tworzenie obrazu i wypychanie do rejestru kontenerów

W przypadku aplikacji możesz również skompilować obraz i wypchnąć go do rejestru kontenerów.

Rozwiązywanie problemów

Jeśli możesz skompilować projekt na maszynie deweloperów, ale masz problemy z tworzeniem go na Azure Pipelines, zapoznaj się z następującymi potencjalnymi przyczynami i akcjami naprawczymi:

  • Nie instalujemy wersji wstępnej zestawu .NET Core SDK na agentach hostowanych przez firmę Microsoft. Po wydaniu nowej wersji zestawu .NET Core SDK wdrożenie wszystkich centrów danych Azure Pipelines może potrwać kilka tygodni. Nie musisz czekać na ukończenie tego wdrożenia. Możesz użyć Instalatora narzędzi .NET Core , aby zainstalować wersję zestawu .NET Core SDK na agentach hostowanych przez firmę Microsoft.
  • Sprawdź wersje i środowisko uruchomieniowe zestawu .NET Core SDK na maszynie deweloperów i upewnij się, że są one zgodne z agentem. Skrypt wiersza dotnet --version polecenia można dołączyć do potoku, aby wydrukować wersję zestawu .NET Core SDK. Użyj Instalatora narzędzi platformy .NET Core , aby wdrożyć tę samą wersję na agencie lub zaktualizować projekty i maszynę deweloperów do nowszej wersji zestawu .NET Core SDK.

  • W środowisku IDE Visual Studio, który nie jest zakodowany w potoku, może być używana logika. Azure Pipelines uruchamia poszczególne polecenia określone w zadaniach po drugim w nowym procesie. Sprawdź dzienniki z kompilacji potoków, aby wyświetlić dokładne polecenia uruchomione w ramach kompilacji. Powtórz te same polecenia w tej samej kolejności na maszynie programistycznej, aby zlokalizować problem.

  • Jeśli masz rozwiązanie mieszane obejmujące niektóre projekty platformy .NET Core i niektóre projekty .NET Framework, należy również użyć zadania NuGet w celu przywrócenia pakietów określonych w packages.config plikach. Dodaj zadanie MSBuild lub Visual Studio Build, aby skompilować projekty .NET Framework.

  • Kompilacje mogą sporadycznie zakończyć się niepowodzeniem podczas przywracania pakietów: NuGet.org ma problemy z siecią między centrum danych platformy Azure i NuGet.org. Warto sprawdzić, czy korzystanie z Azure Artifacts z witryną NuGet.org jako nadrzędne źródło zwiększa niezawodność kompilacji, ponieważ nie znajduje się ona w naszej kontroli.

  • Czasami po wdrożeniu nowej wersji zestawu .NET Core SDK lub Visual Studio kompilacja może ulec awarii. Jeśli na przykład nowsza wersja lub funkcja narzędzia NuGet zostanie dostarczona z zestawem SDK. Aby odizolować ten problem, użyj zadania Instalatora narzędzi .NET Core , aby określić wersję zestawu .NET Core SDK używanego w kompilacji.

Często zadawane pytania

Pyt.: Gdzie mogę dowiedzieć się więcej o Azure Artifacts i usłudze zarządzania pakietami TFS?

1: Zarządzanie pakietami w Azure Artifacts

Pyt.: Gdzie mogę dowiedzieć się więcej o poleceniach platformy .NET Core?

1: Narzędzia interfejsu wiersza polecenia platformy .NET Core

Pyt.: Gdzie mogę dowiedzieć się więcej na temat uruchamiania testów w moim rozwiązaniu?

1: Testowanie jednostkowe w projektach platformy .NET Core

Pyt.: Gdzie mogę dowiedzieć się więcej o zadaniach?

1: Zadania kompilacji i wydania