Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Az Azure Pipeline használatával automatikusan létrehozhatja, tesztelheti és üzembe helyezheti .NET Core-projektjeit. Ez a cikk a következő feladatok elvégzését mutatja be:
- Set up your build environment with self-hosted agents.
- Állítsa vissza a függőségeket, hozza létre a projektet, és tesztelje a .NET Core-feladatot (DotNetCoreCLI@2) vagy egy szkriptet.
- Tesztelje a kódot, és a kódlefedettségi feladat használatával tegye közzé a kódlefedettségi eredményeket.
- Csomagolja és kézbesítse a build kimenetét a címre:
- your pipeline.
- NuGet-hírcsatorna.
- egy
.zip
webalkalmazás Azure-ban való üzembe helyezéséhez szükséges fájl.
- Állítsa be a buildkörnyezetet a Microsoft által üzemeltetett vagy saját üzemeltetésű ügynökökkel.
- Állítsa vissza a függőségeket, hozza létre a projektet, és tesztelje a .NET Core-feladatot (DotNetCoreCLI@2) vagy egy szkriptet.
- Tesztelje a kódot, és a kódlefedettségi feladat használatával tegye közzé a kódlefedettségi eredményeket.
- Csomagolja és kézbesítse a build kimenetét a címre:
- your pipeline.
- NuGet-hírcsatorna.
- egy
.zip
webalkalmazás Azure-ban való üzembe helyezéséhez szükséges fájl.
Note
.NET-keretrendszer-projektekhez nézze meg a ASP.NET-alkalmazások készítése .NET-keretrendszerrel című oldalt.
Előfeltételek
termék | Követelmények |
---|---|
Azure DevOps | - An Azure DevOps organization and project.
Hozzon létre egyet ingyen. - engedélyek: – A projekt összes folyamatához való hozzáférés biztosításához: A Projektgazdák csoporttagjának kell lennie. - To create service connections: You must have the Administrator or Creator role for service connections. - An ability to run pipelines on Microsoft-hosted agents. Vásárolhat párhuzamos feladatot , vagy ingyenes szintet kérhet. |
GitHub | - Egy GitHub--fiók. |
termék | Követelmények |
---|---|
Azure DevOps | - An Azure DevOps collection. - engedélyek: – A projekt összes folyamatához való hozzáférés biztosításához: A Projektgazdák csoporttagjának kell lennie. - To create service connections: You must have the Administrator or Creator role for service connections. |
GitHub | - Egy GitHub--fiók. |
Az első csővezeték létrehozása
Most ismerkedik az Azure Pipelines szolgáltatásokkal? Ha igen, akkor javasoljuk, hogy először próbálja ki a következő szakaszt.
.NET-projekt létrehozása
Ha nem rendelkezik .NET-projekttel, hozzon létre egy újat a helyi rendszeren. Start by installing the .NET 8.0 SDK .
Nyisson meg egy terminálablakot.
Create a project directory and navigate to it.
Hozzon létre egy új .NET 8-webalkalmazást.
dotnet new webapp -f net8.0
Ugyanabból a terminál munkamenetből futtassa az alkalmazást helyileg a
dotnet run
projektkönyvtár parancsával.dotnet run
Once the application starts, press Ctrl-C to shut it down.
Git-adattár létrehozása és csatlakoztatása a GitHubhoz
A projektkönyvtárból hozzon létre egy helyi Git-adattárat, és véglegesítse az alkalmazáskódot a főágban.
DevOps-projekt létrehozása
Create a new Azure DevOps project to host your pipeline.
- Egy böngészőben nyissa meg a dev.azure.com , és jelentkezzen be.
- Válassza ki a szervezetet.
- Hozzon létre egy új projektet az Új projekt vagy a Projekt létrehozása lehetőség kiválasztásával, ha az első projektet hozza létre a szervezetben.
- Adjon meg egy projektnevet.
- Válassza ki a projekt láthatóságát .
- Válassza a Létrehozás lehetőséget.
- Egy böngészőben nyissa meg az Azure DevOps Servert.
- Válassza ki a gyűjteményt.
- Új projekt létrehozásához válassza az Új projekt vagy a Projekt létrehozása lehetőséget, ha az első projektet hozza létre a gyűjteményben.
- Adjon meg egy projektnevet.
- Válassza ki a projekt láthatóságát .
- Válassza a Létrehozás lehetőséget.
Set up your build environment
Your builds run on self-hosted agents. Győződjön meg arról, hogy az ügynökökre telepítve van a .NET Core SDK és a futtatókörnyezet szükséges verziója. You can build your .NET Core projects by using the .NET Core SDK and runtime on Windows, Linux, macOS, and Docker.
A .NET SDK egy adott verzióját úgy telepítheti, hogy hozzáadja a UseDotNet@2 feladatot a folyamat YAML-fájljához, vagy hozzáadja a feladatot a folyamathoz a klasszikus szerkesztő használatával.
Példa YAML-kódrészletre:
steps:
- task: UseDotNet@2
inputs:
version: '8.x'
A buildek a Microsoft által üzemeltetett ügynökökön futnak. A .NET Core-projekteket a .NET Core SDK és a futtatókörnyezet használatával hozhatja létre Windows, Linux és macOS rendszeren.
Másik lehetőségként használhat saját üzemeltetésű ügynököt is. Saját üzemeltetésű ügynökkel használhat előzetes verziójú vagy privát SDK-kat, amelyeket az Azure DevOps Services hivatalosan nem támogat, és növekményes buildeket futtathat.
Készítse el a csővezetékét
A folyamat létrehozásához használhatja a YAML-folyamatszerkesztőt vagy a klasszikus szerkesztőt. A klasszikus szerkesztő használatához válassza a Klasszikus szerkesztő használata lehetőséget.
Új folyamat létrehozása és a forrás kiválasztása
Jelentkezzen be az Azure DevOps-szervezetbe, és nyissa meg a projektet.
Lépjen a Folyamatok elemre, majd válassza az Új folyamat vagy a Folyamat létrehozása lehetőséget az első folyamat létrehozásakor.
Végezze el a varázsló lépéseit úgy, hogy először a GitHubot választja a forráskód helyeként.
Előfordulhat, hogy a rendszer átirányítja a GitHubra a bejelentkezéshez. Ha igen, adja meg a GitHub hitelesítő adatait.
Amikor megjelenik az adattárak listája, válassza ki az adattárat.
Előfordulhat, hogy a Rendszer átirányítja a GitHubra az Azure Pipelines alkalmazás telepítéséhez. Ha igen, válassza a Jóváhagyás > telepítés lehetőséget.
A csővezeték konfigurálása
Amikor megjelenik a Konfigurálás lap, válassza a Továbbiak megjelenítése lehetőséget, és válassza ki a ASP.NET Core-folyamatsablont a listából.
Nézze meg az új csővezetékét, hogy megtudja, mit csinál a YAML.
A YAML-fájlt testreszabhatja a követelményeknek megfelelően. Megadhatja például az ügynöki csoportot, vagy hozzáadhat egy feladatot a különböző .NET SDK-k telepítéséhez.
Save and run your pipeline
Ha elkészült, válassza a Mentés és futtatás lehetőséget.
Igény szerint szerkesztheti a véglegesítési üzenetet.
Véglegesítse az új azure-pipelines.yml fájlt az adattárban a Mentés és futtatás gombra kattintva.
A folyamat működés közbeni megtekintéséhez válassza ki a feladatot a Feladatok szakaszban.
A pipeline létrehozása és futtatása
A folyamatot a YAML-folyamatszerkesztővel vagy a klasszikus szerkesztővel hozhatja létre.
- Lépjen be a projektbe, és válassza a Pipelines-t.
- Válassza a Folyamat létrehozása vagy Az új folyamat létrehozása lehetőséget, ha a projekt első folyamatát hozza létre.
Válassza ki a forrást
Válassza ki a forrásadattárat. Ebben a példában használja a GitHub Enterprise Servert.
- Adja meg a GitHub-fiók URL-címét. Például:
https://github.com/<username>
. - Adja meg személyes hozzáférési jogkivonatát a GitHub-fiókjához.
- Adjon meg egy szolgáltatáskapcsolatnevet. Például:
my-github
. - Válassza a Létrehozás lehetőséget.
- Adja meg a GitHub-fiók URL-címét. Például:
Válassza ki a GitHub-adattárat.
A csővezeték konfigurálása
A Konfigurálás lapon válassza a Továbbiak megjelenítése lehetőséget, és válassza ki a ASP.NET Core-folyamatsablont a listából.
Nézze meg az új csővezetékét, hogy megtudja, mit csinál a YAML.
A YAML-fájlt testreszabhatja a követelményeknek megfelelően. Hozzáadhat például feladatokat egy .NET SDK telepítéséhez vagy a projekt teszteléséhez és közzétételéhez.
Save and run your pipeline
Válassza a Mentés és futtatás lehetőséget.
Ha az új azure-pipelines.yml fájlt az adattárba szeretné véglegesíteni, szükség szerint szerkessze a véglegesítési üzenetet, és válassza a Mentés és futtatás lehetőséget.
A folyamat működés közbeni megtekintéséhez válassza ki a feladatot a Feladatok szakaszban.
Most már rendelkezik egy olyan munkafolyamatpal, amely készen áll a testreszabásra! Olvass tovább, hogy megismerd a folyamatod testreszabásának néhány gyakori módját.
Környezet létrehozása
Az Azure Pipelines saját üzemeltetésű ügynököket használ a .NET Core-projektek létrehozásához. Győződjön meg arról, hogy az ügynökökre telepítve van a .NET Core SDK és a futtatókörnyezet szükséges verziója. You can build your .NET Core projects by using the .NET Core SDK and runtime on Windows, Linux, macOS, and Docker.
Például a pool és az ügynöki képességek kiválasztása a pipeline YAML-fájlban:
You can select the agent pool and agent for your build job. Az ügynökök a képességeik alapján vannak megadva.
pool:
name: myPrivateAgents
demands:
- agent.os -equals Darwin
- anotherCapability -equals somethingElse
A .NET SDK egy adott verzióját úgy telepítheti, hogy hozzáadja a UseDotNet@2 feladatot a folyamathoz. 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.
To install a newer SDK, set performMultiLevelLookup
to true
in the following snippet:
steps:
- task: UseDotNet@2
displayName: 'Install .NET Core SDK'
inputs:
version: 8.x
performMultiLevelLookup: true
includePreviewVersions: true # Required for preview versions
Az Azure Pipelines használatával anélkül hozhat létre .NET Core-projekteket Windowson, Linuxon vagy macOS rendszeren, hogy infrastruktúrát kellene beállítania.
Az Ubuntu például itt van beállítva a folyamat YAML-fájljában.
pool:
vmImage: 'ubuntu-latest'
A képek teljes listáját és a további konfigurációs példákat a Microsoft által üzemeltetett ügynökökben találja.
Az Azure Pipelines Microsoft által üzemeltetett ügynökei a támogatott .NET Core SDK-k számos előre telepített verzióját tartalmazzák. A Microsoft által üzemeltetett ügynökök nem tartalmazzák a .NET Core SDK néhány régebbi verzióját. Ezek általában nem tartalmaznak előzetes verziókat. Ha az SDK ezen verzióira van szüksége a Microsoft által üzemeltetett ügynökökön, telepítse őket a UseDotNet@2 feladattal.
Az 5.0.x SDK telepítéséhez például adja hozzá a következő kódrészletet:
steps:
- task: UseDotNet@2
inputs:
version: '5.x'
A Windows-ügynökök már tartalmaznak .NET Core-futtatókörnyezetet. To install a newer SDK, set performMultiLevelLookup
to true
in the following snippet:
steps:
- task: UseDotNet@2
displayName: 'Install .NET Core SDK'
inputs:
version: 8.x
performMultiLevelLookup: true
includePreviewVersions: true # Required for preview versions
Tip
Az eszköztelepítő futtatásának költségeinek megtakarításához beállíthat linuxos, macOS vagy Windows rendszerű saját üzemeltetésű ügynököt. 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.
Függőségek helyreállítása
A NuGet egy népszerű módja annak, hogy a nem buildelt kódtól függjön. A projektfájlban megadott NuGet-csomagokat és projektspecifikus eszközöket úgy töltheti le, hogy a dotnet restore
parancsot a .NET Core-feladaton keresztül vagy közvetlenül a folyamat egy szkriptjében futtatja. További információ: .NET Core-feladat (DotNetCoreCLI@2).
NuGet-csomagokat az Azure Artifactsből, NuGet.org vagy más külső vagy belső NuGet-adattárból tölthet le. A .NET Core-feladat különösen hasznos a hitelesített NuGet-hírcsatornákból származó csomagok visszaállításához. 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)'
A dotnet restore
parancs a NuGet.exe
.NET Core SDK-val együtt csomagolt csomagot használja, és csak a .NET Core-projektfájlokban .csproj
megadott csomagokat tudja visszaállítani.
Ha a megoldásban .NET Framework projektje is van, vagy a package.json
használatával adja meg a függőségeket, a NuGet feladat használatával állítsa vissza ezeket a függőségeket.
- task: NuGetCommand@2
inputs:
command: 'restore'
restoreSolution: '**/*.sln'
feedsToUse: 'select'
Note
Ha Ubuntu 24.04-et vagy újabb verziót használ, a NuGetAuthenticate
feladat helyett a NuGetCommand@2
feladatot a .NET parancssori felületével kell használnia. For more information, see Support for newer Ubuntu hosted images.
A .NET Core SDK 2.0-s és újabb verzióiban a rendszer automatikusan visszaállítja a csomagokat olyan parancsok futtatásakor, mint a dotnet build
. Hitelesített hírcsatorna használata esetén azonban továbbra is a .NET Core-feladatot kell használnia a csomagok visszaállításához.
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. A folyamat hitelesítő adatait a rendszer automatikusan használja az Azure Artifactshez való csatlakozáskor. Ezek a hitelesítő adatok általában a Project Collection Build Service-fiókból származnak. A NuGet-csomagok gyorsítótárazásához az Azure Artifacts használatával kapcsolatos további információkért lásd : Csatlakozás az Azure Artifact-hírcsatornákhoz.
NuGet-adattár megadásához helyezze az URL-címet egy NuGet.config
fájlba az adattárban. Ha a hírcsatorna hitelesítve van, kezelje a hitelesítő adatait egy NuGet-szolgáltatáskapcsolat létrehozásával a Szolgáltatások lapon, a Projektbeállítások területen.
A Microsoft által üzemeltetett ügynökök használatakor minden egyes build futtatásakor új gépet kap, amely minden futtatáskor visszaállítja a csomagokat. A helyreállítás jelentős időt vehet igénybe. To mitigate, you can either use Azure Artifacts or a self-hosted agent with the benefit of using the package cache.
További információ a NuGet-szolgáltatáskapcsolatokról: közzététel a NuGet-hírcsatornákban.
Csomagok visszaállítása külső forrásból
Végezze el az alábbi lépéseket a csomagok külső hírcsatornából való visszaállításához.
A visszaállítási parancsot a YAML-folyamatszerkesztővel is hozzáadhatja a folyamathoz úgy, hogy közvetlenül beszúrja a következő kódrészletet a azure-pipelines.yml
fájlba, vagy a feladat-asszisztens használatával adja hozzá a .NET Core-feladatot .
# 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.
A feladat-asszisztens használata:
Ha buildfeladatot szeretne hozzáadni a feladatkezelővel, hajtsa végre a következő lépéseket:
Lépjen arra a pozícióra a YAML-fájlban, ahová be szeretné szúrni a feladatot.
Válassza ki a .NET Core-t a feladatkatalógusból.
Válassza ki a visszaállítási parancsot a Parancs legördülő listából.
A Projekt(ek) elérési útja mezőben adja meg a
.csproj
fájlok elérési útját.Válassza a Hozzáadás lehetőséget.
A módosítás véglegesítéséhez válassza a Mentés lehetőséget.
Note
Győződjön meg arról, hogy az egyéni hírcsatorna meg van adva a NuGet.config
fájlban, és hogy a hitelesítő adatok meg vannak adva a NuGet szolgáltatáskapcsolatban.
A projekt felépítése
A parancs futtatásával hozza létre a .NET Core-projekteket dotnet build
. A parancsot parancssori szkriptként vagy .NET Core-feladatként is hozzáadhatja a folyamathoz.
Build with the .NET Core task
YAML-példa a DotNetCoreCLI@2 feladat használatával történő buildeléshez:
steps:
- task: DotNetCoreCLI@2
displayName: Build
inputs:
command: build
projects: '**/*.csproj'
arguments: '--configuration $(buildConfiguration)' # Update this to match your needs
A YAML-folyamatszerkesztővel buildelési feladatokat adhat hozzá a fájl közvetlen szerkesztésével vagy a .NET Core-feladat hozzáadásával a feladatsegéd használatával.
Ha buildfeladatot szeretne hozzáadni a feladatkezelővel, hajtsa végre a következő lépéseket:
Lépjen arra a pozícióra a YAML-fájlban, ahová be szeretné szúrni a feladatot.
Válassza ki a .NET Core-t a feladatkatalógusból.
Válassza ki a build parancsot a Parancs legördülő listából.
A Projekt(ek) elérési útja mezőben adja meg a
.csproj
fájlok elérési útját.Válassza a Hozzáadás lehetőséget.
A módosítás véglegesítéséhez válassza a Mentés lehetőséget.
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)'
A YAML folyamatszerkesztővel közvetlenül szerkesztheti a fájlt, vagy hozzáadhatja a Command Line build feladatot.
A parancssori feladat hozzáadásához kövesse az alábbi lépéseket:
Lépjen arra a pozícióra a YAML-fájlban, ahová be szeretné szúrni a feladatot.
Válassza ki a parancssort a feladatkatalógusból.
Tetszés szerint adjon hozzá egy megjelenítendő nevet.
Adja meg a
dotnet build
parancsot paraméterekkel. Például:dotnet build --configuration $(buildConfiguration)
.Adja meg a
.csproj
fájl elérési útját munkakönyvtárként.Válassza a Hozzáadás lehetőséget.
A módosítás véglegesítéséhez válassza a Mentés lehetőséget.
.NET SDK-parancsok hozzáadása a folyamathoz
A .NET SDK-parancsokat parancsfájlként vagy .NET Core-feladatként is hozzáadhatja a projekthez. A .NET Core-tevékenység (DotNetCoreCLI@2) segítségével egyszerűen adhat hozzá dotnet CLI-parancsokat a folyamathoz. A YAML-fájl szerkesztésével vagy a klasszikus szerkesztő használatával vehet fel .NET Core feladatokat.
Add a .NET CLI command with the .NET Core task
Ha .NET Core CLI-parancsot szeretne hozzáadni a YAML-folyamatszerkesztővel, hajtsa végre a következő lépéseket:
Lépjen arra a pozícióra a YAML-fájlban, ahová be szeretné szúrni a feladatot.
Válassza ki a .NET Core-t a feladatkatalógusból.
Válassza ki a futtatni kívánt parancsot.
Konfigurálja a szükséges beállításokat.
Válassza a Hozzáadás lehetőséget.
A módosítás véglegesítéséhez válassza a Mentés lehetőséget.
Add a .NET Core CLI command in a script
You can add .NET Core CLI commands as a script
in your azure-pipelines.yml
file.
Példa:
steps:
# ...
- script: dotnet test <test-project>
Eszköz telepítése
Ha windowsos buildben szeretne telepíteni egy .NET Core-alapú globális eszközt, például a dotnetsay-t , hajtsa végre a következő lépéseket:
- Adja hozzá a .NET Core-feladatot , és állítsa be a következő tulajdonságokat:
-
Command: custom.
- A projektek elérési útja: hagyja üresen.
- Egyéni parancs: eszköz.
-
Argumentumok:
install -g dotnetsay
.
-
Command: custom.
- Az eszköz futtatásához adjon hozzá egy parancssort, és állítsa be a következő tulajdonságokat:
-
Szkript:
dotnetsay
.
-
Szkript:
A tesztek futtatása
Ha tesztprojektek vannak az adattárban, a .NET Core-feladattal egységteszteket futtathat olyan tesztelési keretrendszerek használatával, mint az MSTest, az xUnit és az NUnit. A tesztprojektnek a Microsoft.NET.Test.SDK 15.8.0-s vagy újabb verziójára kell hivatkoznia. A teszteredmények automatikusan közzé lesznek téve a szolgáltatásban. Ezek az eredmények a build összegzésében érhetők el, és a sikertelen tesztek és a tesztelés időzítésének elemzéséhez használhatók.
A folyamathoz a DotNetCoreCLI@2 feladattal adhat hozzá tesztfeladatot, vagy hozzáadhatja a következő kódrészletet a azure-pipelines.yml
fájlhoz:
steps:
# ...
# do this after other tasks such as building
- task: DotNetCoreCLI@2
inputs:
command: test
projects: '**/*Tests/*.csproj'
arguments: '--configuration $(buildConfiguration)'
A .NET Core feladatszerkesztő használatakor állítsa be a Command to test (Tesztelés) parancsot, és a Projektek elérési útja parancsnak a megoldás tesztprojektjéhez kell hivatkoznia.
Másik lehetőségként futtathatja a dotnet test
parancsot egy adott naplózóval, majd használhatja a Teszteredmények közzététele feladatot:
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
Amikor a Windows platformra épít, a kódlefedettségi metrikákat a beépített lefedettségi adatgyűjtővel gyűjtheti össze. A tesztprojektnek a Microsoft.NET.Test.SDK 15.8.0-s vagy újabb verziójára kell hivatkoznia.
Amikor a .NET Core-feladatot használja a tesztek futtatására, a rendszer automatikusan közzéteszi a lefedettségi adatokat a kiszolgálón. A .coverage
fájl a Visual Studióban való megtekintéshez letölthető a build összegzéséből.
Adja hozzá a következő kódrészletet a azure-pipelines.yml
fájlhoz:
steps:
# ...
# do this after other tasks such as building
- task: DotNetCoreCLI@2
inputs:
command: test
projects: '**/*Tests/*.csproj'
arguments: '--configuration $(buildConfiguration) --collect "Code Coverage"'
A .NET Core-feladat hozzáadása a feladatszerkesztőn keresztül:
Adja hozzá a .NET Core-feladatot a buildelési feladathoz, és állítsa be a következő tulajdonságokat:
- Command: test.
- A projektek elérési útja: A megoldásban szereplő tesztprojektekre kell hivatkoznia.
-
Argumentumok:
--configuration $(BuildConfiguration) --collect "Code Coverage"
.
Győződjön meg arról, hogy a Teszteredmények közzététele lehetőség továbbra is be van jelölve.
Ha a dotnet test
parancs futtatását választja, adja meg a teszteredmény-naplózót és a lefedettségi beállításokat. Ezután használja a Teszteredmények közzététele feladatot:
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'
Kódlefedettségi metrikák gyűjtése a Coverlet használatával
Ha Linuxra vagy macOS-re készül, a Coverlet vagy egy hasonló eszköz használatával kódlefedettségi metrikákat gyűjthet.
You can publish code coverage results to the server with the Publish Code Coverage Results task (PublishCodeCoverageResults@2) task. A lefedettségi eszközt úgy kell konfigurálni, hogy cobertura vagy JaCoCo lefedettségi formátumban hozzon létre eredményeket.
Tesztek futtatásához és kódlefedettség közzétételéhez a Coverlettel végezze el a következő feladatokat:
Adjon hozzá egy hivatkozást a
coverlet.collector
NuGet-csomaghoz.Adja hozzá a következő kódrészletet a
azure-pipelines.yml
fájlhoz:- 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'
A kód csomagolása és kézbesítése
A buildösszetevőket a következőkkel teheti közzé:
- Közzététel az Azure Pipelinesban.
- Csomagok közzététele az Azure Artifactsben.
- NuGet-csomag létrehozása és közzététele a NuGet-hírcsatornában.
- .zip archívum létrehozása a webalkalmazás üzembe helyezéséhez.
Artefaktumok közzététele az Azure Pipelinesban
A .NET-build kimenetének a szervezeti folyamatba való beillesztéséhez hajtsa végre a következő feladatokat:
- Run
dotnet publish --output $(Build.ArtifactStagingDirectory)
on the .NET CLI or add the DotNetCoreCLI@2 task with the publish command. - Publish the artifact by using the Publish Pipeline Artifact task.
Adja hozzá a következő kódrészletet a azure-pipelines.yml
fájlhoz:
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'
Note
A DotNetCoreCLI@2 feladatnak van egy publishWebProjects
bemeneti értéke, amely alapértelmezés szerint igaz. Ez a feladat alapértelmezés szerint minden webes projektet közzétesz az adattárban. További segítséget és információt a GitHub nyílt forráskód feladatában talál.
Ha a közzététel előtt további fájlokat szeretne másolni a buildkönyvtárba, használja a Fájlok másolása (CopyFile@2) feladatot.
A .NET-build kimenetének a szervezeti folyamatba való beillesztéséhez hajtsa végre a következő feladatokat:
- Futtassa a
dotnet publish --output $(Build.ArtifactStagingDirectory)
parancsot a parancssori felületen, vagy adja hozzá a DotNetCoreCLI@2 feladatot a közzétételi paranccsal. - A Publish build artifact (PublishBuildArtifacts@1) feladat használatával tegye közzé az artefaktumot.
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'
További információért lásd: Build-artefaktumok közzététele és letöltése.
Közzététel NuGet-hírcsatornában
NuGet-csomag létrehozásához és a NuGet-hírcsatornában való közzétételéhez adja hozzá a következő kódrészletet:
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
Note
A NuGetAuthenticate@1 feladat nem támogatja a NuGet API-kulcsok hitelesítését. 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. Például: dotnet nuget push --api-key $(NuGetApiKey)
.
A NuGet-csomagok verziószámozásával és közzétételével kapcsolatos további információkért tekintse meg a NuGet-hírcsatornákban való közzétételt.
NuGet-csomag közzététele az Azure Artifactsben
You can publish your NuGet packages to your Azure Artifacts feed by using the NuGetCommand@2 to push to your Azure Artifact feed. Lásd például a NuGet-csomagok közzétételét az Azure Pipelines használatával.
Webalkalmazás üzembe helyezése
Ha olyan .zip fájlarchívumot szeretne létrehozni, amely készen áll a webalkalmazásban való közzétételre, adja hozzá a következő kódrészletet:
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
Az archívum webalkalmazásban való közzétételéhez tekintse meg az Azure Web Apps üzembe helyezését.
Rendszerkép létrehozása és leküldés a tárolóregisztrációs adatbázisba
Létrehozhat egy lemezképet az alkalmazáshoz, és leküldheti egy tárolóregisztrációs adatbázisba.
Szimbólumok közzététele
A PublishSymbols@2 feladat használatával szimbólumokat tehet közzé egy Azure Artifacts szimbólumkiszolgálón vagy fájlmegosztáson.
Ha például szimbólumokat szeretne közzétenni egy fájlmegosztásban, adja hozzá a következő kódrészletet a azure-pipelines.yml
fájlhoz:
- task: PublishSymbols@2
inputs:
SymbolsFolder: '$(Build.SourcesDirectory)'
SearchPattern: '**/bin/**/*.pdb'
IndexSources: true
PublishSymbols: true
SymbolServerType: 'FileShare'
SymbolsPath: '\\server\shareName'
A klasszikus szerkesztő használata esetén válassza az Indexforrás-közzétételi szimbólumokat a feladatkatalógusból a folyamathoz való hozzáadáshoz.
További információ: Szimbólumok közzététele.
Hibaelhárítás
Ha létrehozhatja a projektet a fejlesztői gépén, de problémákat tapasztal az Azure Pipelineson való létrehozás során, vizsgálja meg az alábbi lehetséges okokat és korrekciós műveleteket:
- A .NET Core SDK előzetes verziói nincsenek telepítve a Microsoft által üzemeltetett ügynökökre. A .NET Core SDK új verziójának kiadása után néhány hétbe telhet az összes Azure Pipelines-adatközpont üzembe helyezése. Nem kell megvárnia, amíg a bevezetés befejeződik. A .NET Core használata feladat használatával telepítheti a Microsoft által üzemeltetett ügynökökre a kívánt .NET Core SDK-verziót.
Ellenőrizze a fejlesztőgép .NET Core SDK-verzióit és futtatókörnyezetét, és győződjön meg arról, hogy azok megfelelnek az ügynöknek. You can include a command-line script
dotnet --version
in your pipeline to print the version of the .NET Core SDK. A .NET Core Tool Installer használatával telepítse ugyanazt a verziót az ügynökön, vagy frissítse projektjeit és fejlesztői gépét a .NET Core SDK újabb verziójára.Előfordulhat, hogy olyan logikát használ a Visual Studio IDE-ben, amely nincs kódolva a folyamatláncban. Az Azure Pipelines egy új folyamat során egymás után futtatja a feladatokban megadott parancsokat. Vizsgálja meg a pipeline-ok buildnaplóit, hogy megtekinthesse a build során futtatott pontos parancsokat. To locate the problem, repeat the same commands in the same order on your development machine.
Ha vegyes megoldással rendelkezik, amely tartalmaz néhány .NET Core-projektet és néhány .NET-keretrendszer-projektet, a NuGet-feladat használatával is visszaállíthatja a fájlokban
packages.config
megadott csomagokat. Adja hozzá az MSBuild vagy Visual Studio Build feladatot a .NET keretrendszer-projekteket létrehozásához.Előfordulhat, hogy a buildek időnként meghiúsulnak a csomagok visszaállítása során: NuGet.org problémákat tapasztal, vagy hálózati problémák merülnek fel az Azure-adatközpont és a NuGet.org között. Megtudhatja, hogy az Azure Artifacts és a NuGet.org felsőbb rétegbeli forrásként való használata javítja-e a buildek megbízhatóságát, mivel ez nem a mi irányításunk alatt áll.
Időnként előfordulhat, hogy a .NET Core SDK vagy a Visual Studio új verziójának bevezetésekor a build megszakadhat. A NuGet-eszköz egy újabb verziója vagy funkciója például az SDK-val együtt szállítva megszakíthatja a buildet. A probléma elkülönítéséhez a .NET Core Eszköztelepítő feladatával adja meg a buildben használt .NET Core SDK verzióját.
FAQ
K: Hol tudhatok meg többet az Azure Artifactsről?
K: Hol tudhatok meg többet a .NET Core-parancsokról?
Válasz: .NET Core CLI-eszközök
K: Hol tudhatok meg többet a tesztek megoldásban való futtatásáról?
Válasz: Egységtesztelés .NET Core-projektekben