Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Pomocí kanálu Azure můžete automaticky sestavovat, testovat a nasazovat projekty .NET Core. V tomto článku se dozvíte, jak provádět následující úlohy:
- Set up your build environment with self-hosted agents.
- Obnovte závislosti, sestavte projekt a otestujte pomocí úlohy .NET Core (DotNetCoreCLI@2) nebo skriptu.
- Test your code and use the publish code coverage task to publish code coverage results.
- Zabalte a doručte svůj výstup ze sestavení na:
- your pipeline.
- a NuGet feed.
- soubor
.zip
pro nasazení webové aplikace do Azure.
- Nastavte si prostředí sestavení pomocí Microsoftem hostovaných agentů nebo místně hostovaných agentů.
- Obnovte závislosti, sestavte projekt a otestujte pomocí úlohy .NET Core (DotNetCoreCLI@2) nebo skriptu.
- Test your code and use the publish code coverage task to publish code coverage results.
- Zabalte a doručte svůj výstup ze sestavení na:
- your pipeline.
- a NuGet feed.
- soubor
.zip
pro nasazení webové aplikace do Azure.
Poznámka:
Nápovědu k projektům rozhraní .NET Framework najdete v tématu Vytváření ASP.NET aplikací pomocí rozhraní .NET Framework.
Požadavky
produkt | Požadavky |
---|---|
Azure DevOps | - An Azure DevOps organization and project.
Vytvořte si ho zdarma. - Oprávnění: - Chcete-li udělit přístup ke všem kanálům v projektu: Musíte být členem skupiny Project Administrators. - Chcete-li vytvořit připojení služeb: Musíte mít roli - An ability to run pipelines on Microsoft-hosted agents. Můžete si buď koupit paralelní úlohu, nebo požádat o bezplatnou úroveň. |
GitHub | – účet GitHubu. |
produkt | Požadavky |
---|---|
Azure DevOps | - An Azure DevOps collection. - Oprávnění: - Chcete-li udělit přístup ke všem kanálům v projektu: Musíte být členem skupiny Project Administrators. - Chcete-li vytvořit připojení služeb: Musíte mít roli |
GitHub | – účet GitHubu. |
Vytvořte svůj první datový tok
Jste noví ve službě Azure Pipelines? Pokud ano, doporučujeme nejprve vyzkoušet následující část.
Vytvoření projektu .NET
Pokud nemáte projekt .NET pro práci, vytvořte v místním systému nový projekt. Start by installing the .NET 8.0 SDK .
Otevřete okno terminálu.
Vytvořte adresář projektu a přejděte na něj.
Vytvořte novou webovou aplikaci .NET 8.
dotnet new webapp -f net8.0
From the same terminal session, run the application locally using the
dotnet run
command from your project directory.dotnet run
Once the application starts, press Ctrl-C to shut it down.
Vytvoření úložiště Git a jeho připojení k GitHubu
Vytvoření projektu DevOps
Create a new Azure DevOps project to host your pipeline.
- V prohlížeči přejděte na dev.azure.com a přihlaste se.
- Vyberte svoji organizaci.
- Pokud vytváříte první projekt v organizaci, vytvořte nový projekt výběrem možnosti Nový projekt nebo Vytvořit projekt .
- Zadejte název projektu.
- Vyberte viditelnost projektu.
- Vyberte Vytvořit.
- V prohlížeči přejděte na Azure DevOps Server.
- Vyberte kolekci.
- Vytvořte nový projekt výběrem Nový projekt nebo Vytvořit projekt, pokud vytváříte první projekt v kolekci.
- Zadejte název projektu.
- Vyberte viditelnost projektu.
- Vyberte Vytvořit.
Set up your build environment
Your builds run on self-hosted agents. Ujistěte se, že na agentech máte nainstalovanou potřebnou verzi sady .NET Core SDK a modulu runtime. You can build your .NET Core projects by using the .NET Core SDK and runtime on Windows, Linux, macOS, and Docker.
Konkrétní verzi sady .NET SDK můžete nainstalovat přidáním úlohy UseDotNet@2 do souboru YAML kanálu nebo přidáním úlohy do kanálu pomocí klasického editoru.
Příklad fragmentu kódu YAML:
steps:
- task: UseDotNet@2
inputs:
version: '8.x'
Vaše buildy běží na agentech hostovaných Microsoftem. Projekty .NET Core můžete sestavit pomocí sady .NET Core SDK a modulu runtime ve Windows, Linuxu a macOS.
Alternativně můžete použít samohostovaného agenta. S agentem v místním prostředí můžete používat sady Preview nebo privátní sady SDK, které Azure DevOps Services oficiálně nepodporuje, a spouštět přírůstkové buildy.
Vytvořte si potrubí
K vytvoření kanálu můžete použít editor kanálů YAML nebo klasický editor. Pokud chcete použít klasický editor, vyberte Použít klasický editor.
Vytvoření nového kanálu a výběr zdroje
Přihlaste se ke své organizaci Azure DevOps a přejděte do svého projektu.
Přejděte na Kanály a pak vyberte Nový kanál nebo Vytvořit kanál , pokud vytváříte první kanál.
Kroky průvodce proveďte tak, že nejprve vyberete GitHub jako umístění zdrojového kódu.
Můžete být přesměrováni na GitHub kvůli přihlášení. Pokud ano, zadejte svoje přihlašovací údaje GitHubu.
Až se zobrazí seznam úložišť, vyberte úložiště.
K instalaci aplikace Azure Pipelines můžete být přesměrováni na GitHub. Pokud ano, vyberte Schválit a nainstalovat.
Nakonfigurujte své potrubí
Když se zobrazí karta Konfigurovat, vyberte Zobrazit více a ze seznamu vyberte šablonu kanálu ASP.NET Core.
Prozkoumejte nové potrubí a podívejte se, co YAML dělá.
Soubor YAML si můžete přizpůsobit podle svých požadavků. Můžete například zadat fond agentů nebo přidat úlohu pro instalaci jiné sady .NET SDK.
Save and run your pipeline
Až budete připraveni, vyberte Uložit a spustit.
Volitelně můžete zprávu potvrzení upravit.
Potvrďte nový soubor azure-pipelines.yml do úložiště výběrem možnosti Uložit a spustit.
Pokud chcete sledovat potrubí v akci, vyberte úlohu v sekci Úlohy.
Create and run your pipeline
Kanál můžete vytvořit pomocí editoru kanálů YAML nebo klasického editoru.
- Přejděte do projektu a vyberte Kanály.
- Vyberte Vytvořit kanál nebo Nový kanál, pokud vytváříte první kanál pro tento projekt.
Výběr zdroje
Vyberte zdrojové úložiště. V tomto příkladu použijte GitHub Enterprise Server.
- Zadejte adresu URL svého účtu GitHubu. Například
https://github.com/<username>
. - Zadejte svůj osobní přístupový token pro váš účet GitHubu.
- Zadejte název připojení služby. Například
my-github
. - Vyberte Vytvořit.
- Zadejte adresu URL svého účtu GitHubu. Například
Vyberte úložiště GitHub.
Nakonfigurujte své potrubí
Na kartě Konfigurace vyberte Zobrazit více a ze seznamu vyberte šablonu kanálu ASP.NET Core.
Prozkoumejte nové potrubí a podívejte se, co YAML dělá.
Soubor YAML si můžete přizpůsobit podle svých požadavků. Můžete například přidat úkoly k instalaci sady .NET SDK nebo k otestování a publikování projektu.
Save and run your pipeline
Zvolte Uložit a Spustit.
Pokud chcete nový soubor azure-pipelines.yml potvrdit do úložiště, upravte zprávu potvrzení podle potřeby a vyberte Uložit a spustit.
Pokud chcete sledovat potrubí v akci, vyberte úlohu v sekci Úlohy.
You now have a working pipeline that's ready for you to customize! Read further to learn some of the common ways to customize your pipeline.
Sestavení prostředí
Azure Pipelines používá k sestavení projektů .NET Core agenty v místním prostředí. Ujistěte se, že na agentech máte nainstalovanou potřebnou verzi sady .NET Core SDK a modulu runtime. You can build your .NET Core projects by using the .NET Core SDK and runtime on Windows, Linux, macOS, and Docker.
For example, to select a pool and agent capabilities in the pipeline YAML file:
You can select the agent pool and agent for your build job. Agenti jsou určeni na základě jejich možností.
pool:
name: myPrivateAgents
demands:
- agent.os -equals Darwin
- anotherCapability -equals somethingElse
Konkrétní verzi sady .NET SDK můžete nainstalovat přidáním úlohy UseDotNet@2 do potrubí. Keep in mind that for agents that run on physical systems, installing SDKs and tools through your pipeline alters the build environment on the agent's host.
Pokud chcete nainstalovat novější sadu SDK, nastavte ji z performMultiLevelLookup
na true
v následujícím fragmentu kódu:
steps:
- task: UseDotNet@2
displayName: 'Install .NET Core SDK'
inputs:
version: 8.x
performMultiLevelLookup: true
includePreviewVersions: true # Required for preview versions
Azure Pipelines můžete použít k sestavení projektů .NET Core ve Windows, Linuxu nebo macOS bez nutnosti nastavení infrastruktury.
For example, Ubuntu is set here in the pipeline YAML file.
pool:
vmImage: 'ubuntu-latest'
Úplný seznam imagí a dalších příkladů konfigurace najdete v agentech hostovaných Microsoftem.
Agenti hostovaní Microsoftem v Azure Pipelines zahrnují několik předinstalovaných verzí podporovaných sad .NET Core SDK. Agenti hostovaní Microsoftem nezahrnují některé starší verze sady .NET Core SDK. Tyto verze také obvykle nezahrnují předběžné verze. Pokud tyto verze sady SDK potřebujete na agentech hostovaných Microsoftem, nainstalujte je pomocí úlohy UseDotNet@2 .
Pokud chcete například nainstalovat sadu SDK 5.0.x, přidejte následující fragment kódu:
steps:
- task: UseDotNet@2
inputs:
version: '5.x'
Agenti Windows už obsahují modul runtime .NET Core. Pokud chcete nainstalovat novější sadu SDK, nastavte ji z performMultiLevelLookup
na true
v následujícím fragmentu kódu:
steps:
- task: UseDotNet@2
displayName: 'Install .NET Core SDK'
inputs:
version: 8.x
performMultiLevelLookup: true
includePreviewVersions: true # Required for preview versions
Tip
Pokud chcete ušetřit náklady na spuštění instalačního programu nástroje, můžete nastavit agenta v místním prostředí s Linuxem, macOS nebo Windows. You can also use self-hosted agents to save time if you have a large repository or you run incremental builds. A self-hosted agent can also help you in using the SDKs that aren't included in Azure DevOps or are only available on your corporate or on-premises environments.
Obnovení závislostí
NuGet je oblíbený způsob, jak záviset na kódu, který nevytvořujete. Balíčky NuGet a nástroje specifické pro projekt, které jsou zadané v souboru projektu, můžete stáhnout spuštěním dotnet restore
příkazu buď prostřednictvím úlohy .NET Core , nebo přímo ve skriptu ve vašem kanálu. Další informace najdete v tématu úloha .NET Core (DotNetCoreCLI@2).
Balíčky NuGet si můžete stáhnout z Azure Artifacts, NuGet.org nebo z jiného externího nebo interního úložiště NuGet. Úloha .NET Core je zvláště užitečná pro obnovování balíčků z ověřených NuGet zdrojů. If your feed is in the same project as your pipeline, you don't need to authenticate.
This pipeline uses an Azure Artifact feed for dotnet restore
in the DotNetCoreCLI@2 task.
trigger:
- main
pool:
vmImage: 'windows-latest'
steps:
- task: UseDotNet@2
displayName: 'Install .NET Core SDK'
inputs:
version: 8.x
performMultiLevelLookup: true
includePreviewVersions: true # Required for preview versions
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)'
The dotnet restore
command uses the NuGet.exe
packaged with the .NET Core SDK and can only restore packages specified in the .NET Core project .csproj
files.
Pokud máte ve svém řešení také projekt Microsoft .NET Framework nebo používáte package.json
k určení závislostí, obnovte tyto závislosti pomocí úlohy NuGet .
- task: NuGetCommand@2
inputs:
command: 'restore'
restoreSolution: '**/*.sln'
feedsToUse: 'select'
Poznámka:
Pokud používáte Ubuntu 24.04 nebo novější, musíte místo úlohy NuGetAuthenticate
použít NuGetCommand@2
úlohu s rozhraním příkazového řádku .NET. For more information, see Support for newer Ubuntu hosted images.
V sadě .NET Core SDK verze 2.0 a novějších se balíčky automaticky obnoví při spouštění příkazů, jako je dotnet build
. However, you would still need to use the .NET Core task to restore packages if you use an authenticated feed.
Your builds can fail because of connection issues when you restore packages from NuGet.org. You can use Azure Artifacts with upstream sources to cache the packages. Přihlašovací údaje pipeliny se automaticky použijí při připojení k Azure Artifacts. Tyto přihlašovací údaje jsou obvykle odvozeny z účtu služby sestavení kolekce projektů. Další informace o použití Azure Artifacts k ukládání balíčků NuGet do mezipaměti najdete v tématu Připojení k informačním kanálům Azure Artifact.
Pokud chcete zadat úložiště NuGet, vložte adresu URL do NuGet.config
souboru v úložišti. Pokud je váš informační kanál ověřený, spravujte jeho přihlašovací údaje vytvořením připojení služby NuGet na kartě Služby v části Nastavení projektu.
Když používáte agenty hostované Microsoftem, získáte nový počítač při každém spuštění sestavení, který obnoví balíčky při každém spuštění. Obnovení může trvat značné množství času. Pokud chcete zmírnit omezení, můžete použít Azure Artifacts nebo agenta v místním prostředí s výhodou použití mezipaměti balíčků.
For more information about NuGet service connections, see publish to NuGet feeds.
Obnovení balíčků z externího zdroje
Proveďte následující kroky k obnovení balíčků z externího zdroje.
Příkaz pro obnovení můžete do kanálu přidat pomocí editoru kanálů YAML tak, že do souboru vložíte přímo následující fragment kódu azure-pipelines.yml
nebo pomocí pomocníka pro úlohy přidáte úlohu .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>
Replace the <placeholder> with your service connection name.
Použití pomocníka pro úkoly:
Pokud chcete přidat úlohu sestavení pomocí pomocníka pro úlohy, postupujte takto:
Přejděte na pozici v souboru YAML, kam chcete úkol vložit.
V katalogu úloh vyberte .NET Core.
V rozevíracím seznamu Příkaz vyberte příkaz pro obnovení.
Do pole Cesta k projektům zadejte cestu k souborům
.csproj
.Vyberte Přidat.
Výběrem možnosti Uložit změnu potvrďte.
Poznámka:
Make sure the custom feed is specified in your NuGet.config
file and that credentials are specified in the NuGet service connection.
Sestavení projektu
Sestavte projekty .NET Core spuštěním dotnet build
příkazu. Tento příkaz můžete do kanálu přidat jako skript příkazového řádku nebo pomocí úlohy .NET Core.
Build with the .NET Core task
Příklad YAML pro sestavení pomocí úlohy DotNetCoreCLI@2:
steps:
- task: DotNetCoreCLI@2
displayName: Build
inputs:
command: build
projects: '**/*.csproj'
arguments: '--configuration $(buildConfiguration)' # Update this to match your needs
Úlohu sestavení můžete přidat pomocí editoru kanálů YAML přímo úpravou souboru nebo přidáním úlohy .NET Core pomocí pomocníka pro úlohy.
Pokud chcete přidat úlohu sestavení pomocí pomocníka pro úlohy, postupujte takto:
Přejděte na pozici v souboru YAML, kam chcete úkol vložit.
V katalogu úloh vyberte .NET Core.
Vyberte příkaz sestavení z rozevíracího seznamu Příkaz.
Do pole Cesta k projektům zadejte cestu k souborům
.csproj
.Vyberte Přidat.
Výběrem možnosti Uložit změnu potvrďte.
Build .NET Core with a command line script
YAML example to build using dotnet build
as a script:
steps:
- script: dotnet build --configuration $(buildConfiguration)
displayName: 'dotnet build $(buildConfiguration)'
Úlohu sestavení můžete přidat pomocí editoru kanálů YAML přímo úpravou souboru nebo přidáním úlohy příkazového řádku .
Přidejte úlohu příkazového řádku pomocí následujících kroků:
Přejděte na pozici v souboru YAML, kam chcete úkol vložit.
Vyberte příkazový řádek z katalogu úloh.
Optionally, add a Display name.
dotnet build
Zadejte příkaz s parametry. Napříkladdotnet build --configuration $(buildConfiguration)
.Jako pracovní adresář zadejte cestu k
.csproj
souboru.Vyberte Přidat.
Výběrem možnosti Uložit změnu potvrďte.
Přidejte příkazy sady .NET SDK do pipeline
Do projektu můžete přidat příkazy sady .NET SDK jako skript nebo pomocí úlohy .NET Core. The .NET Core task (DotNetCoreCLI@2) task allows you to easily add dotnet CLI commands to your pipeline. Úlohy .NET Core můžete přidat úpravou souboru YAML nebo pomocí klasického editoru.
Add a .NET CLI command with the .NET Core task
Pokud chcete přidat příkaz rozhraní příkazového řádku .NET Core pomocí editoru kanálů YAML, postupujte následovně:
Přejděte na pozici v souboru YAML, kam chcete úkol vložit.
V katalogu úloh vyberte .NET Core .
Vyberte příkaz, který chcete spustit.
Nakonfigurujte všechny potřebné možnosti.
Vyberte Přidat.
Výběrem možnosti Uložit změnu potvrďte.
Add a .NET Core CLI command in a script
Do souboru script
můžete přidat příkazy rozhraní příkazového řádku .NET Core jako azure-pipelines.yml
.
Příklad:
steps:
# ...
- script: dotnet test <test-project>
Instalace nástroje
Pokud chcete nainstalovat globální nástroj .NET Core, jako je dotnetsay v buildu spuštěném ve Windows, postupujte takto:
-
Přidejte úlohu .NET Core a nastavte následující vlastnosti:
-
Command: custom.
- Cesta k projektům: ponechejte prázdné.
- Vlastní příkaz: nástroj.
-
Argumenty:
install -g dotnetsay
.
-
Command: custom.
- Pokud chcete nástroj spustit, přidejte příkazový řádek a nastavte následující vlastnosti:
-
Skript:
dotnetsay
.
-
Skript:
Spuštění testů
Pokud máte v úložišti projekty testů, můžete pomocí úlohy .NET Core spouštět testy jednotek pomocí testovacích architektur, jako jsou MSTest, xUnit a NUnit. Testovací projekt musí odkazovat na Microsoft.NET.Test.SDK verze 15.8.0 nebo vyšší. Výsledky testů se automaticky publikují do služby. Tyto výsledky jsou k dispozici v souhrnu sestavení a lze je použít k řešení potíží s neúspěšnými testy a analýzou časování testů.
Testovací úlohu můžete do kanálu přidat pomocí úlohy DotNetCoreCLI@2 nebo do azure-pipelines.yml
souboru přidat následující fragment kódu:
steps:
# ...
# do this after other tasks such as building
- task: DotNetCoreCLI@2
inputs:
command: test
projects: '**/*Tests/*.csproj'
arguments: '--configuration $(buildConfiguration)'
Při použití editoru úloh .NET Core nastavte příkaz na test a cesta k projektům by měla odkazovat na testovací projekty ve vašem řešení.
Případně můžete spustit příkaz dotnet test
s konkrétním loggerem a potom použít úlohu Publikovat výsledky 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'
Collect code coverage
When you're building on the Windows platform, code coverage metrics can be collected by using the built-in coverage data collector. Testovací projekt musí odkazovat na Microsoft.NET.Test.SDK verze 15.8.0 nebo vyšší.
Při použití úlohy .NET Core ke spuštění testů se data pokrytí automaticky publikují na server. Soubor .coverage
lze stáhnout ze souhrnu sestavení, aby byl viditelný v programu Visual Studio.
Do souboru přidejte následující fragment kódu azure-pipelines.yml
:
steps:
# ...
# do this after other tasks such as building
- task: DotNetCoreCLI@2
inputs:
command: test
projects: '**/*Tests/*.csproj'
arguments: '--configuration $(buildConfiguration) --collect "Code Coverage"'
Přidání úlohy .NET Core prostřednictvím editoru úloh:
Přidejte úlohu .NET Core do úlohy sestavení a nastavte následující vlastnosti:
- Command: test.
- Cesta k projektům: Měl by odkazovat na testovací projekty ve vašem řešení.
-
Argumenty:
--configuration $(BuildConfiguration) --collect "Code Coverage"
.
Ujistěte se, že je vybraná možnost Publikovat výsledky testu.
If you choose to run the dotnet test
command, specify the test results logger and coverage options. Pak použijte úlohu Publikovat výsledky 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'
Shromažďování metrik pokrytí kódu pomocí Coverletu
Pokud vytváříte v Linuxu nebo macOS, můžete ke shromažďování metrik pokrytí kódu použít Coverlet nebo podobný nástroj.
You can publish code coverage results to the server with the Publish Code Coverage Results task (PublishCodeCoverageResults@2) task. Nástroj pokrytí musí být nakonfigurovaný tak, aby vygeneroval výsledky ve formátu pokrytí Cobertura nebo JaCoCo.
Pokud chcete spustit testy a publikovat pokrytí kódu pomocí Coverletu, proveďte následující úlohy:
Přidejte odkaz na
coverlet.collector
balíček NuGet.Do souboru přidejte následující fragment kódu
azure-pipelines.yml
:- task: UseDotNet@2 inputs: version: '8.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@2 displayName: 'Publish code coverage report' inputs: codeCoverageTool: 'Cobertura' summaryFileLocation: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'
Zabalte a doručte váš kód
Artefakty sestavení můžete publikovat pomocí:
- Publishing to Azure Pipelines.
- Publikování balíčků do Azure Artifacts
- Vytvoření balíčku NuGet a publikování do informačního kanálu NuGet
- Vytvoření .zip archivu pro nasazení webové aplikace
Publikování artefaktů do Azure Pipelines
To publish the output of your .NET build to your pipeline, do the following tasks:
- Spusťte
dotnet publish --output $(Build.ArtifactStagingDirectory)
na rozhraní příkazového řádku .NET nebo přidejte úlohu DotNetCoreCLI@2 s příkazem publish. - Publikujte artefakt pomocí úlohy Publish Pipeline Artifact.
Do souboru přidejte následující fragment kódu azure-pipelines.yml
:
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: 'myWebsite'
Poznámka:
Úloha DotNetCoreCLI@2 má publishWebProjects
vstup, který je ve výchozím nastavení nastaven na true . Tento úkol ve výchozím nastavení publikuje všechny webové projekty v úložišti. Další nápovědu a informace najdete v opensourcové úloze na GitHubu.
Pokud chcete před publikováním zkopírovat více souborů do adresáře sestavení, použijte úlohu Kopírovat soubory (CopyFile@2).
To publish the output of your .NET build to your pipeline, do the following tasks:
- Spusťte
dotnet publish --output $(Build.ArtifactStagingDirectory)
v CLI nebo přidejte úlohu DotNetCoreCLI@2 s příkazem publish. - Publikujte artefakt pomocí úlohy Publish build artifact (PublishBuildArtifacts@1).
To publish your build artifacts as a .zip file, add the following snippet to your azure-pipelines.yml
file:
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: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'drop'
For more information, see Publish and download build artifacts.
Publikování do informačního kanálu NuGet
Pokud chcete vytvořit balíček NuGet a publikovat ho do informačního kanálu NuGet, přidejte následující fragment kódu:
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@1
inputs:
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
Poznámka:
Úloha NuGetAuthenticate@1 nepodporuje ověřování klíčů rozhraní NUGet API. If you're using a NuGet API key, use the NuGetCommand@2 task with the command
input set to push
with the --api-key
argument. Například dotnet nuget push --api-key $(NuGetApiKey)
.
Další informace o správě verzí a publikování balíčků NuGet najdete v tématu publikování v informačních kanálech NuGet.
Publikování balíčku NuGet do Azure Artifacts
Balíčky NuGet můžete publikovat do kanálu Azure Artifacts pomocí NuGetCommand@2 pro odeslání do vašeho kanálu Azure Artifacts. Podívejte se například na téma Publikování balíčků NuGet pomocí Azure Pipelines.
Nasazení webové aplikace
Pokud chcete vytvořit archiv souborů .zip, který je připravený k publikování do webové aplikace, přidejte následující fragment kódu:
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
Pokud chcete tento archiv publikovat do webové aplikace, viz nasazení Azure Web Apps.
Build an image and push to container registry
Můžete také vytvořit image pro vaši aplikaci a odeslat ji do registru kontejneru.
Publikování symbolů
Pomocí úlohy PublishSymbols@2 můžete publikovat symboly na serveru symbolů Azure Artifacts nebo ve sdílené složce.
Pokud chcete například publikovat symboly do sdílené složky, přidejte do azure-pipelines.yml
souboru následující fragment kódu:
- task: PublishSymbols@2
inputs:
SymbolsFolder: '$(Build.SourcesDirectory)'
SearchPattern: '**/bin/**/*.pdb'
IndexSources: true
PublishSymbols: true
SymbolServerType: 'FileShare'
SymbolsPath: '\\server\shareName'
When using the classic editor, select Index sources publish symbols from the task catalog to add to your pipeline.
Další informace najdete v tématu Publikování symbolů.
Odstraňování potíží
Pokud můžete projekt sestavit na vývojovém počítači, ale máte potíže s jeho sestavením v Azure Pipelines, prozkoumejte následující možné příčiny a nápravné akce:
- Předběžné verze sady .NET Core SDK nejsou nainstalované na agentech hostovaných Microsoftem. Po vydání nové verze sady .NET Core SDK může trvat několik týdnů, než se zavede do všech datových center Azure Pipelines. You don't have to wait for this rollout to complete. Pomocí úlohy Použít .NET Core můžete nainstalovat požadovanou verzi sady .NET Core SDK na agenty hostované Microsoftem.
Zkontrolujte verze sady .NET Core SDK a modul runtime na vývojovém počítači a ujistěte se, že odpovídají agentu. Do sestavy můžete zahrnout skript
dotnet --version
příkazového řádku, který zobrazí verzi sady .NET Core SDK. Buď pomocí instalačního programu nástroje .NET Core nasaďte stejnou verzi na agenta, nebo aktualizujte projekty a vývojový počítač na novější verzi sady .NET Core SDK.Možná používáte nějakou logiku v integrovaném vývojovém prostředí sady Visual Studio, která není zakódovaná ve vašem pracovním postupu. Azure Pipelines spouští všechny příkazy, které zadáte v úlohách po druhém v novém procesu. Prozkoumejte protokoly ze sestavení potrubí a podívejte se na přesné příkazy, které se spustily jako součást sestavení. To locate the problem, repeat the same commands in the same order on your development machine.
Pokud máte smíšené řešení, které obsahuje některé projekty .NET Core a některé projekty rozhraní .NET Framework, měli byste také použít úlohu NuGet k obnovení balíčků zadaných v
packages.config
souborech. Přidejte úlohu SESTAVENÍ nástroje MSBuild nebo Visual Studio pro sestavení projektů rozhraní .NET Framework.Sestavení může při obnovování balíčků občas selhat: dochází k problémům NuGet.org nebo dochází k problémům se sítí mezi datovým centrem Azure a NuGet.org. Můžete prozkoumat, jestli použití Azure Artifacts s NuGet.org jako nadřazený zdroj zlepšuje spolehlivost sestavení, protože není v naší kontrole.
Occasionally, a when new version of the .NET Core SDK or Visual Studio is rolled out, your build might break. Například novější verze nebo funkce nástroje NuGet, která je dodávána jako součást sady SDK, může narušit vaše sestavení. Pokud chcete tento problém izolovat, použijte úlohu instalačního programu nástroje .NET Core k určení verze sady .NET Core SDK, která se používá v sestavení.
Často kladené dotazy
Otázka: Kde se dozvím další informace o Azure Artifacts?
Otázka: Kde se dozvím další informace o příkazech .NET Core?
A: Nástroje rozhraní příkazového řádku .NET Core
Otázka: Kde najdu další informace o spouštění testů v řešení?
A: Testování jednotek v projektech .NET Core