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 | Azure DevOps Server 2022 | Azure DevOps Server 2020
Ez a cikk azt ismerteti, hogyan használható az Azure Pipelines a .NET Core-projektek használatára. A cikk a következő feladatokat ismerteti:
- Hozzon létre egy .NET Core-webalkalmazást, és töltse fel egy GitHub-adattárba.
- Hozzon létre egy Azure DevOps-projektet és egy Azure Pipelines-folyamatot a projekt létrehozásához.
- Saját üzemeltetésű ügynökökkel állítsa be a buildkörnyezetet.
- Állítsa vissza a függőségeket, hozza létre a projektet, és tesztelje a .NET Core (
DotNetCoreCLI@2) feladattal vagy egy szkripttel. - A .NET Core (
DotNetCoreCLI@2) feladat használatával további .NET SDK-parancsokat adhat hozzá a folyamathoz. - A Kódlefedettségi eredmények közzététele (
Publish code coverage results v2) tevékenységgel közzéteheti a kódlefedettségi eredményeket. - Csomagolja és kézbesítse a buildkimenetet a folyamatnak, a NuGet-hírcsatornának, a ZIP-archívumnak vagy más céloknak.
- Hozzon létre egy .NET Core-webalkalmazást, és töltse fel egy GitHub-adattárba.
- Hozzon létre egy Azure DevOps-projektet és egy Azure Pipelines-folyamatot a projekt létrehozásához.
- Á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 (
DotNetCoreCLI@2) feladattal vagy egy szkripttel. - A .NET Core (
DotNetCoreCLI@2) feladat használatával további .NET SDK-parancsokat adhat hozzá a folyamathoz. - A Kódlefedettségi eredmények közzététele (
Publish code coverage results v2) tevékenységgel közzéteheti a kódlefedettségi eredményeket. - Csomagolja és kézbesítse a buildkimenetet a folyamatnak, a NuGet-hírcsatornának, a ZIP-archívumnak vagy más céloknak.
Note
A .NET-keretrendszer-projektek használatához lásd: ASP.NET-alkalmazások létrehozása a .NET-keretrendszerrel.
Előfeltételek
A cikkben szereplő összes eljárás elvégzéséhez a következő előfeltételekre van szükség:
- Egy Azure DevOps-szervezet. Ingyenesen létrehozhat egyet.
- Tagság a szervezet Projektgazdák csoportjában, így Azure DevOps-projekteket hozhat létre, és hozzáférést adhat a projekteknek a folyamatokhoz. Az Azure DevOps-szervezet tulajdonosai automatikusan rendelkeznek ezzel a tagsággal.
- Egy Azure DevOps-projekt a szervezetben. Projekt létrehozása az Azure DevOps.
- Folyamatok futtatása a Microsoft által üzemeltetett ügynökökön a párhuzamos feladatok ingyenes rétegének kérésével. A kérés feldolgozása több munkanapot is igénybe vehet. További információ: Párhuzamos feladatok konfigurálása és fizetése.
- A szolgáltatáskapcsolatokrendszergazdai vagy létrehozói szerepköre, amelyet projektadminisztrátorként rendelhet hozzá.
- Egy GitHub-fiók és -adattár.
A cikkben szereplő összes eljárás elvégzéséhez a következő előfeltételekre van szükség:
- Egy Azure DevOps-gyűjtemény.
- A szervezetben létrehozott Azure DevOps-projekt. Útmutatásért lásd: Projekt létrehozása az Azure DevOpsban.
- Tagság a Projektgazdák csoportban, így Azure DevOps-projekteket hozhat létre, és hozzáférést adhat a projekteknek a folyamatokhoz. Az Azure DevOps Organization tulajdonosai automatikusan rendelkeznek ezzel a tagsággal.
- A szolgáltatáskapcsolatokrendszergazdai vagy létrehozói szerepköre, amelyet projektadminisztrátorként rendelhet hozzá.
- Egy GitHub-fiók és -adattár.
.NET-projekt létrehozása és feltöltése a GitHubra
Ha már a GitHub-adattárban szeretne .NET-projektet használni, kihagyhatja ezt a szakaszt.
Ha nem rendelkezik .NET-projekttel, hozzon létre egy újat a helyi gépen az alábbiak szerint:
- Telepítse a .NET 8.0 SDK-t, vagy győződjön meg arról, hogy telepítve van.
- Nyisson meg egy terminálablakot a helyi gépen.
- Hozzon létre egy projektkönyvtárat, és navigáljon hozzá.
- Hozzon létre egy új .NET 8-webalkalmazást a futtatással
dotnet new webapp -f net8.0. - Az alkalmazást helyileg hozhatja létre és futtathatja a használatával
dotnet run. - Az alkalmazás indításakor nyomja le a Ctrl+C billentyűkombinációt.
- Töltse fel vagy csatlakoztassa a helyi projektet a GitHub-adattárhoz.
Folyamat létrehozása
Ha van egy használni kívánt folyamat, kihagyhatja ezt a szakaszt. Ellenkező esetben a YAML-folyamatszerkesztővel vagy a klasszikus szerkesztővel az alábbiak szerint hozhat létre folyamatot:
Az Azure DevOps-projektben válassza a Folyamatok lehetőséget a bal oldali navigációs menüben.
Válassza az Új vagy a Folyamat létrehozása lehetőséget, ha ez a folyamat az első a projektben.
A Hol van a kód képernyőjén válassza a GitHubot.
Előfordulhat, hogy a rendszer átirányítja a GitHubra a bejelentkezéshez. Ha igen, adja meg a GitHub hitelesítő adatait.
Az Adattár kiválasztása képernyőn válassza ki azt az adattárat, amelyben a .NET-alkalmazás található.
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 Konfigurálás lapon válassza a Továbbiak megjelenítése lehetőséget, majd válassza ki a ASP.NET Core-folyamatsablont a listából. Ez a sablon számos lépést és beállítást tartalmaz, amelyeket ez a cikk ír le.
A Starter-folyamatot a Konfigurálás lapon is kiválaszthatja , hogy minimális folyamattal kezdje, és saját maga adja hozzá a lépéseket és a beállításokat.
A Véleményezés lapon vizsgálja meg a YAML-kódot. Testre szabhatja a fájlt a követelményeknek megfelelően. Megadhat például egy másik ügynökkészletet, vagy hozzáadhat egy feladatot egy másik .NET SDK telepítéséhez.
Az Azure DevOps-projektben válassza a Folyamatok lehetőséget a bal oldali navigációs menüben.
Válassza az Új vagy a Folyamat létrehozása lehetőséget, ha ez a folyamat az első a projektben.
Válassza ki a forrásadattár típusát. Ebben a példában használja a GitHub Enterprise Servert.
A következő képernyőn adja meg a következő információkat:
- Például
https://github.com/mynamea GitHub-fiók URL-címe. - A GitHub személyes hozzáférési jogkivonata (PAT).
- Egy szolgáltatáskapcsolat neve, például
my-github.
- Például
Válassza a Létrehozás lehetőséget.
Válassza ki a GitHub-adattárat.
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. Ez a sablon számos lépést és beállítást tartalmaz, amelyeket ez a cikk ír le.
Vizsgálja meg az új YAML-folyamatkódot. A YAML-fájlt testreszabhatja a követelményeknek megfelelően. Hozzáadhat például egy feladatot egy másik .NET SDK telepítéséhez vagy a projekt teszteléséhez és közzétételéhez.
Ha elkészült, válassza a Mentés és futtatás lehetőséget.
Igény szerint szerkessze a véglegesítési üzenetet, majd válassza a Mentés és futtatás lehetőséget.
Az Összegzés lapon válassza ki a feladatokat a Feladatok szakaszban, és figyelje meg a folyamatot működés közben.
Most már rendelkezik egy testre szabható munkafolyamatpal.
A buildkörnyezet beállítása
Az Azure Pipelines saját üzemeltetésű ügynökökkel hozza létre a .NET Core-projektet. A .NET Core SDK-t és futtatókörnyezetet Windows, Linux, macOS vagy Docker-ügynökökön is használhatja. 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.
A .NET SDK egy adott verziójának telepítéséhez adja hozzá a UseDotNet@2 feladatot egy YAML-folyamatfájlhoz vagy a .NET Core használata feladathoz a klasszikus szerkesztőben.
Note
A fizikai rendszereken futó ügynökök esetében az SDK-k és az eszközök folyamaton keresztüli telepítése megváltoztatja az ügynök gazdagépének buildkörnyezetét.
Az alábbi YAML-kódrészlet telepíti a .NET SDK 8.0.x-et:
steps:
- task: UseDotNet@2
inputs:
version: '8.x'
Egy újabb SDK telepítéséhez állítsa a következőre performMultiLevelLookuptrue: .
steps:
- task: UseDotNet@2
displayName: 'Install .NET Core SDK'
inputs:
version: 8.x
performMultiLevelLookup: true
includePreviewVersions: true # Required for preview versions
A build-feladathoz kiválaszthatja az ügynökkészletet és az ügynököt. Az ügynököket a képességeik alapján is megadhatja. Az alábbi YAML-folyamatrészlet például kiválasztja a készlet és az ügynök képességeit.
pool:
name: myPrivateAgents
demands:
- agent.os -equals Darwin
- anotherCapability -equals somethingElse
A .NET Core-projekteket a .NET Core SDK és a futtatókörnyezet használatával hozhatja létre Windows, Linux vagy macOS rendszeren. Alapértelmezés szerint a buildek a Microsoft által üzemeltetett ügynökökön futnak, így nem kell infrastruktúrát beállítania.
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. Az elérhető rendszerképek és konfigurációs példák teljes listáját a Microsoft által üzemeltetett ügynökökben találja.
Az alábbi YAML-folyamatrészlet az Ubuntu operációs rendszert állítja be az ügynökkészlethez.
pool:
vmImage: 'ubuntu-latest'
A Microsoft által üzemeltetett ügynökök nem tartalmazzák a .NET Core SDK néhány régebbi verzióját, és á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, a DotNet használata (UseDotNet@2) feladattal telepítheti őket.
A következő kód például telepíti a .NET 5.0.x SDK-t:
steps:
- task: UseDotNet@2
inputs:
version: '5.x'
A Windows-ügynökök már tartalmaznak .NET Core-futtatókörnyezetet. Újabb SDK telepítéséhez állítsa be performMultiLevelLookup az alábbi kódrészletet true :
steps:
- task: UseDotNet@2
displayName: 'Install .NET Core SDK'
inputs:
version: 8.x
performMultiLevelLookup: true
includePreviewVersions: true # Required for preview versions
Saját üzemeltetésű ügynökök
Másik lehetőségként használhat saját üzemeltetésű ügynököket a .NET Core-projektek létrehozásához. Linux ,macOS vagy Windows önkiszolgáló ügynököket is beállíthat.
A saját üzemeltetésű ügynökök lehetővé teszik a következőt:
- Kerülje az eszköztelepítő futtatásának
UseDotNet@2költségeit. - Ha nagy tárházzal rendelkezik, csökkentse a buildelési időt.
- Növekményes buildek futtatása.
- Olyan előzetes verziójú vagy privát SDK-k használata, amelyeket a Microsoft hivatalosan nem támogat.
- Csak vállalati vagy helyszíni környezetekben elérhető SDK-k használata.
További információ: Saját üzemeltetésű ügynökök.
Függőségek helyreállítása
A NuGet-csomagok segítségével a projekt a nem buildelt kódtól függ. A NuGet-csomagokat és a projektspecifikus eszközöket a dotnet restore parancs futtatásával töltheti le a .NET Core (DotNetCoreCLI@2) feladaton keresztül vagy a folyamat szkriptjeként. A dotnet restore parancs a .NET Core SDK-val csomagolt NuGet.exe használja, és csak a .NET Core-projekt *.csproj fájljaiban megadott csomagokat tudja visszaállítani.
A .NET Core (DotNetCoreCLI@2) feladat használatával nuGet-csomagokat tölthet le és állíthat vissza az Azure Artifactsből, NuGet.org vagy más hitelesített külső vagy belső NuGet-adattárból. Ha a NuGet-hírcsatorna ugyanabban a projektben van, mint a folyamat, akkor nem kell hitelesítenie. További információ: .NET Core-feladat (DotNetCoreCLI@2).
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. A probléma megoldásához használja az Azure Artifactst vagy egy saját üzemeltetésű ügynököt a csomaggyorsítótár előnyeinek kihasználásához.
Az alábbi folyamat a DotNetCoreCLI@2 feladat használatával állítja vissza az Azure Artifact-hírcsatornát.
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 .NET Core SDK 2.0-s és újabb verzióiban a csomagok automatikusan visszaállnak, amikor parancsokat futtat, például dotnet build. Hitelesített hírcsatorna használata esetén továbbra is a .NET Core (DotNetCoreCLI@2) feladatot kell használnia a csomagok visszaállításához.
A hitelesített hírcsatornák hitelesítő adatainak kezelése NuGet-szolgáltatáskapcsolat létrehozásával a Project Settings>Pipelines>Service-kapcsolatokban. További információ a NuGet-szolgáltatáskapcsolatokról: NuGet-csomagok közzététele az Azure Pipelines használatával.
Csomagok visszaállítása NuGet.org
A csomagok NuGet.org való visszaállításához frissítse a folyamatot az alábbiak szerint.
A visszaállítási parancsot hozzáadhatja a folyamathoz a YAML-kód közvetlen szerkesztésével vagy a feladat-asszisztens használatával.
Adja hozzá közvetlenül a .NET Core-feladatotDotNetCoreCLI@2 úgy, hogy beszúrja a következő kódrészletet a azure-pipelines.yml fájlba a buildelési feladatok előtt.
steps:
- task: DotNetCoreCLI@2
displayName: Restore
inputs:
command: restore
projects: '**/*.csproj'
feedsToUse: select
A feladat-asszisztens használata:
- 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.
- A konfigurációs képernyőn válassza a Visszaállítás lehetőséget a Parancs legördülő listából.
- A Projekt(ek) vagy megoldás(ok) elérési útja mezőben adja meg a *.csproj fájlok elérési útját. A **/*.csproj helyettesítő karaktert az összes *.csproj fájlhoz használhatja az összes almappában.
- A hírcsatornák hozzáadásához győződjön meg arról, hogy az itt kiválasztott hírcsatorna(ok) és a NuGet.org csomagjainak használata lehetőség van kiválasztva.
- Válassza a Hozzáadás lehetőséget.
- Válassza az Ellenőrzés és mentés lehetőséget, majd a Módosítás véglegesítéséhez válassza a Mentés lehetőséget.
Csomagok visszaállítása külső forrásból
Külső NuGet-adattár megadásához helyezze az URL-címet egy NuGet.config fájlba az adattárban. Győződjön meg arról, hogy minden egyéni hírcsatorna meg van adva a NuGet.config fájlban, és hogy a hitelesítő adatok egy NuGet-szolgáltatáskapcsolatban vannak megadva.
Ha külső hírcsatornából szeretne csomagokat visszaállítani, adja hozzá a feladatot az restore előző szakaszban leírtak szerint, de módosítsa a konfigurációs beállításokat az alábbiak szerint:
Adja hozzá közvetlenül a .NET Core-feladatotDotNetCoreCLI@2 úgy, hogy beszúrja a következő kódrészletet a azure-pipelines.yml fájlba a buildelési feladatok előtt. Cserélje le <NuGet service connection> a szolgáltatáskapcsolat nevére.
steps:
- task: DotNetCoreCLI@2
displayName: Restore
inputs:
command: restore
projects: '**/*.csproj'
feedsToUse: config
nugetConfigPath: NuGet.config # Relative to root of the repository
externalFeedCredentials: <NuGet service connection>
A feladat-asszisztens használata:
- Adja hozzá a .NET Core-feladatot , és válassza a visszaállítást a konfigurációs képernyőn az előző eljáráshoz hasonlóan.
- Ha hírcsatornákat szeretne hozzáadni, válassza a Hírcsatornák lehetőséget a NuGet.config.
- A NuGet.configelérési útja területen adja meg a NuGet.config fájl elérési útját az adattár gyökeréhez viszonyítva. Válassza ki a három pontot ... a mező mellett a tallózáshoz és a hely kiválasztásához.
- A szervezeten/gyűjteményen kívüli hírcsatornák hitelesítő adatai területén válassza ki a külső adatbázishoz használandó hitelesítő adatokat a kijelölt NuGet.config fájlban. Az ugyanabban a szervezetben lévő hírcsatornák esetében ezt a mezőt üresen hagyhatja. A rendszer automatikusan használja a build hitelesítő adatait.
Csomagok visszaállítása .NET-keretrendszer-projektekhez
Ha a megoldásban Microsoft .NET-keretrendszerprojekt is szerepel, vagy package.json használatával adja meg a függőségeket, a NuGetCommand@2 feladat használatával állítsa vissza ezeket a függőségeket.
- task: NuGetCommand@2
inputs:
command: 'restore'
restoreSolution: '**/*.sln'
feedsToUse: 'select'
Note
Az Ubuntu 24.04-es vagy újabb verziójához a NuGetAuthenticate feladatot kell használnia a .NET parancssori felülettel rendelkező NuGetCommand@2 tevékenység helyett. További információ: Újabb Ubuntu által üzemeltetett rendszerképek támogatása.
A projekt felépítése
Hozza létre a .NET Core-projektet a dotnet build parancs futtatásával. A parancsot a folyamathoz a .NET Core (DotNetCoreCLI@2) feladattal vagy parancssori szkriptként is hozzáadhatja.
A .NET Core-feladat használata
A YAML-folyamatszerkesztővel a buildelési feladatokat közvetlenül a fájl szerkesztésével vagy a feladat-segéd használatával adhatja hozzá.
Adja hozzá közvetlenül a .NET Core (DotNetCoreCLI@2) feladatot az alábbi kódrészlet beszúrásával. Frissítse az arguments igényeinek megfelelőt.
steps:
- task: DotNetCoreCLI@2
displayName: Build
inputs:
command: build
projects: '**/*.csproj'
arguments: '--configuration $(buildConfiguration)'
A feladat-asszisztens használata:
- Lépjen arra a pozícióra a YAML-fájlban, ahová be szeretné szúrni a feladatot.
- Válassza ki a .NET Core (
DotNetCoreCLI@2) feladatot. - Válassza ki a buildet a Command legördülő listából.
- A Projekt(ek) vagy megoldás(ok) elérési útja mezőben adja meg a *.csproj fájlok elérési útját. A **/*.csproj helyettesítő karaktert az összes *.csproj fájlhoz használhatja az összes almappában.
- 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 Core létrehozása parancssori szkripttel
Parancssori szkripttel is létrehozható.
Ha közvetlenül a YAML-fájl szerkesztésével szeretne hozzáadni egy buildelési parancssort, adja hozzá a következő kódot:
steps:
- script: dotnet build --configuration $(buildConfiguration)
displayName: 'dotnet build $(buildConfiguration)'
A parancssori feladat hozzáadásához a feladatsegédet is használhatja.
- Lépjen arra a pozícióra a YAML-fájlban, ahová be szeretné szúrni a feladatot.
- Válassza ki a parancssori (
CmdLine@2) feladatot a listából. - A Szkript mezőbe írja be a
dotnet buildparancsot paraméterekkel. Például:dotnet build --configuration $(buildConfiguration). - A Speciális>munkakönyvtár területen adja meg a *.csproj fájl elérési útját munkakönyvtárként. Ha üresen hagyja, a munkakönyvtár alapértelmezés szerint a következő lesz
$(Build.SourcesDirectory): . - 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.
További .NET SDK-parancsok hozzáadása a folyamathoz
Más .NET SDK-parancsokat is hozzáadhat a folyamathoz a .NET Core (DotNetCoreCLI@2) feladattal vagy szkriptekként.
.NET CLI-parancs hozzáadása a .NET Core-feladattal
A .NET Core (DotNetCoreCLI@2) feladat lehetővé teszi a .NET CLI-parancsok egyszerű hozzáadását a folyamathoz.
A .NET Core-feladatokatDotNetCoreCLI@2 a YAML-fájl szerkesztésével vagy a klasszikus szerkesztő használatával adhat hozzá.
Ha .NET Core-parancsot szeretne hozzáadni a YAML-folyamatszerkesztő feladat-segédjé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 parancsot , amelyet futtatni szeretne a Parancs mező legördülő listájából.
- 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.
.NET Core CLI-parancs hozzáadása szkriptben
A .NET Core CLI-parancsokat hozzáadhatja a scriptazure-pipelines.yml fájlhoz. Például:
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 , adjon hozzá egy .NET Core-feladatot , és állítsa be a következő tulajdonságokat a konfigurációban:
- Parancs: egyéni
- A projektek elérési útja: üresen hagyva
-
Egyéni parancs:
tool -
argumentumok:
install -g dotnetsay
Az eszköz futtatásához adjon hozzá egy parancssori feladatot, és írja be dotnetsay a Szkript mezőbe.
A tesztek futtatása
Ha tesztprojektek vannak az adattárban, a .NET Core (DotNetCoreCLI@2) 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étehetők a szolgáltatásban, és elérhetők a build összegzésében. A teszteredményekkel elháríthatja a sikertelen teszteket, és elemezheti a tesztelés időzítését.
Ha tesztfeladatot szeretne hozzáadni a folyamathoz, adja hozzá a következő kódrészletet a azure-pipelines.yml fájlhoz:
steps:
# ...
# do this after other tasks such as build
- task: DotNetCoreCLI@2
inputs:
command: test
projects: '**/*Tests/*.csproj'
arguments: '--configuration $(buildConfiguration)'
Ha a feladat-asszisztenst használja a .NET Core (DotNetCoreCLI@2) tevékenység hozzáadásához, állítsa be a következő tulajdonságokat:
- Parancs: teszt
- A projektek elérési útja: Állítsa be a tesztprojekteket a megoldásban
-
argumentumok:
--configuration $(BuildConfiguration)
Másik lehetőségként futtathatja a dotnet test parancsot egy adott naplózóval, majd használhatja a PublishTestResults@2 feladatot:
steps:
# ...
# do this after your tests run
- script: dotnet test <test-project> --logger trx
- task: PublishTestResults@2
condition: succeededOrFailed()
inputs:
testRunner: VSTest
testResultsFiles: '**/*.trx'
Kódlefedettség gyűjtése
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 (DotNetCoreCLI@2) feladatot használja tesztek futtatására, a lefedettségi adatok automatikusan közzéteendők a kiszolgálón. A *.coverage fájlt letöltheti a buildösszegzésből a Visual Studióban való megtekintéshez.
A kódlefedettség gyűjtéséhez adja hozzá az --collect "Code Coverage" argumentumot, amikor hozzáadja a tesztfeladatot a folyamathoz.
steps:
# ...
# do this after other tasks such as build
- task: DotNetCoreCLI@2
inputs:
command: test
projects: '**/*Tests/*.csproj'
arguments: '--configuration $(buildConfiguration) --collect "Code Coverage"'
Ha a feladat-asszisztenst használja a .NET Core (DotNetCoreCLI@2) tevékenység hozzáadásához, állítsa be a következő tulajdonságokat:
- Parancs: teszt
- A projektek elérési útja: Állítsa be a tesztprojekteket a megoldásban
-
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.
Másik lehetőségként a kódlefedettségi eredmények gyűjtéséhez használja a dotnet test parancsot egy adott naplózóval, majd futtassa a PublishTestResults@2 feladatot, használja a következő kódot:
steps:
# ...
# do this after your tests 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 épít, a Coverlet vagy egy hasonló eszköz használatával kódlefedettségi metrikákat gyűjthet.
A kódlefedettségi eredményeket közzéteheti a kiszolgálón a Kódlefedettségi eredmények közzététele (PublishCodeCoverageResults@2) feladattal. Konfigurálnia kell a lefedettségi eszközt az eredmények Cobertura vagy JaCoCo lefedettségi formátumban történő létrehozásához.
Tesztek futtatása és kódlefedettség közzététele a Coverlettel:
- Adjon hozzá egy hivatkozást a
coverlet.collectorNuGet-csomaghoz. - Adja hozzá a következő kódrészletet a azure-pipelines.yml fájlhoz:
- 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: '<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 kimenetének csomagolásához és kézbesítéséhez a következőket teheti:
- A buildösszetevők közzététele az Azure Pipelinesban.
- Hozzon létre egy NuGet-csomagot, és tegye közzé a NuGet-hírcsatornában.
- NuGet-csomag közzététele az Azure Artifactsben.
- Zip-archívum létrehozása webalkalmazásban való üzembe helyezéshez.
- Szimbólumok közzététele Azure Artifacts-szimbólumkiszolgálón vagy fájlmegosztáson.
Létrehozhat egy lemezképet az alkalmazáshoz, és leküldheti egy tárolóregisztrációs adatbázisba.
Artefaktumok közzététele az Azure Pipelinesban
A .NET-build kimenetének a folyamaton való közzétételéhez kövesse az alábbi lépéseket.
- Futtassa
dotnet publish --output $(Build.ArtifactStagingDirectory)a .NET parancssori felületét, vagy adja hozzá a .NET Core (DotNetCoreCLI@2) feladatot a közzétételi paranccsal. - Tegye közzé az összetevőt a Folyamatösszetevő (PublishPipelineArtifact@1) tevékenységgel. Ez a feladat feltölti az összes fájlt
$(Build.ArtifactStagingDirectory)a build összetevőjeként.
Adja hozzá a következő kódot a azure-pipelines.yml fájlhoz:
steps:
- task: DotNetCoreCLI@2
inputs:
command: publish
publishWebProjects: True
arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
zipAfterPublish: True
- task: PublishPipelineArtifact@1
inputs:
targetPath: '$(Build.ArtifactStagingDirectory)'
artifactName: 'myWebsite'
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.
Note
A publishWebProjects.NET Core (DotNetCoreCLI@2) feladat bemenete alapértelmezés szerint be van állítva true , és az összes webes projektet közzéteszi az adattárban. További információkért tekintse meg az Azure-Pipelines-Tasks GitHub-adattárat.
A .NET-build kimenetének a folyamaton való közzétételéhez hajtsa végre a következő feladatokat:
- Futtassa
dotnet publish --output $(Build.ArtifactStagingDirectory)a .NET parancssori felületét, vagy adja hozzá a .NET Core (DotNetCoreCLI@2) feladatot a közzétételi paranccsal. - A Publish build artifact (PublishBuildArtifacts@1) feladat használatával tegye közzé az artefaktumot.
Az alábbi azure-pipelines.yml kód zip-fájlként is közzéteszi a buildösszetevőket. A PublishBuildArtifacts@1 feladat az összes fájlt $(Build.ArtifactStagingDirectory) feltölti a build összetevőjeként.
steps:
- task: DotNetCoreCLI@2
inputs:
command: publish
publishWebProjects: true
arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
zipAfterPublish: True
- 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 NuGet-hírcsatornában való közzétételéhez adja hozzá a következő kódrészletet a azure-pipelines.yml fájlhoz:
steps:
# ...
# do this near the end of your pipeline
- script: dotnet pack /p:PackageVersion=$(version) # define the version variable elsewhere in your pipeline
- task: NuGetAuthenticate@1
inputs:
nuGetServiceConnections: '<NuGet service connection>'
- task: NuGetCommand@2
inputs:
command: push
nuGetFeedType: external
publishFeedCredentials: '<NuGet service connection>'
versioningScheme: byEnvVar
versionEnvVar: version
Note
A NuGetAuthenticate@1 feladat nem támogatja a NuGet API-kulcsok hitelesítését. Ha NuGet API-kulcsot használ, használja a feladatot a NuGetCommand@2command bemeneti beállítással push és az --api-key argumentummal. Például: dotnet nuget push --api-key $(NuGetApiKey).
További információ a NuGet-csomagok verziószámozásáról és közzétételéről: NuGet-csomagok közzététele az Azure Pipelines használatával.
NuGet-csomag közzététele az Azure Artifactsben
A NuGet-csomagokat közzéteheti az Azure Artifacts-csatornán a NuGetCommand@2 feladat használatával. További információ: NuGet-csomagok közzététele az Azure Pipelines használatával.
ZIP-fájlarchívum közzététele webalkalmazásban
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 a azure-pipelines.yml. Futtassa ezt a feladatot az alkalmazás létrehozása után, a folyamat vége közelében a legtöbb esetben. Futtassa például ezt a feladatot, mielőtt üzembe helyeznénk egy Azure-webalkalmazásban Windows rendszeren.
steps:
# ...
- 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.
Szimbólumok közzététele
A feladat segítségével PublishSymbols@2 szimbólumokat tehet közzé egy Azure Artifacts szimbólumkiszolgálón vagy fájlmegosztáson. További információ: Szimbólumok közzététele.
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álatához adja hozzá az indexforrásokat, és tegye közzé a szimbólumok feladatát a folyamaton.
Hibaelhárítás
Ha a projekt sikeresen épül a helyi gépre, de az Azure Pipelinesban nem, 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, és az SDK új verziójának bevezetése az összes Azure Pipelines-adatközpontban eltarthat néhány hétig. A bevezetés befejezésére való várakozás helyett 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.
A .NET Core SDK vagy a Visual Studio új verziója megszakíthatja a buildet, például ha a NuGet eszköz újabb verzióját vagy funkcióját tartalmazza. Győződjön meg arról, hogy a fejlesztőgép .NET Core SDK-verziói és futtatókörnyezete megegyezik a folyamatügynökkel.
A .NET Core SDK verziójának nyomtatásához parancssori szkriptet is hozzáadhat
dotnet --versiona folyamathoz. A .NET Core Tool Installer használatával telepítse ugyanazt a verziót az ügynökön, vagy frissítse a projekteket és a fejlesztői gépet a .NET Core SDK folyamatverziójára.Előfordulhat, hogy a buildek időnként meghiúsulnak, mert kapcsolati problémák merülnek fel a csomagok NuGet.org-ból való visszaállításakor. NuGet.org problémákat tapasztalhat, vagy hálózati problémák merülhetnek fel az Azure-adatközpont és a NuGet.org között. Megtudhatja, hogy az Azure Artifacts felsőbb rétegbeli forrásokkal való használata a csomagok gyorsítótárazásához javítja-e a buildek megbízhatóságát.
A folyamat hitelesítő adatait a rendszer automatikusan használja az Azure Artifactshez való csatlakozáshoz. 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.
Előfordulhat, hogy olyan logikát használ a Visual Studióban, amely nincs kódolva a folyamatban. Az Azure Pipelines az egyes parancsokat egymás után futtatja egy új folyamatban. A buildben futtatott parancsok pontos megtekintéséhez vizsgálja meg a folyamat buildjének naplóit. A probléma megkereséséhez ismételje meg ugyanazokat a parancsokat ugyanabban a sorrendben a fejlesztőgépen.
Ha vegyes megoldással rendelkezik, amely tartalmaz néhány .NET Core-projektet és néhány .NET-keretrendszerprojektet, a NuGet-feladat használatával állítsa vissza a packages.config fájlokban megadott csomagokat. Adja hozzá az MSBuild vagy Visual Studio Build feladatot a .NET keretrendszer-projekteket létrehozásához.