Övning – Referera till paketet från programmet
I den här lektionen får du den nya Tailspin.SpaceGame.Web kod som har modellklasserna borttagna. I stället för att referera till modellerna direkt refererar koden till dem från paketet som du skapade i föregående lektion.
Här är en lista över stegen:
- Hämta den nya koden från en gren av den ursprungliga Tailspin.SpaceGame.Web-lagringsplatsen.
- Referera till det nya modellpaketet version 1.0.0.
- Om du vill söka efter det här paketet i Azure Artifacts-flödet ändrar du bygg-pipelinen.
- Se hur pipelinen har skapat appen.
Hämta grenen från GitHub
Hämta models-package
-grenen från GitHub och checka ut eller växla till den grenen.
Den här grenen innehåller projektet Space Game som du arbetade med i föregående moduler, men katalogen Models har tagits bort.
Växla till din kopia av Visual Studio Code som visar projektet Tailspin.SpaceGame.Web.
Från terminalen, för att hämta en gren som heter
models-package
från Microsofts kodförråd, kör följandegit
kommandon. Växla sedan till den grenen.git fetch upstream models-package git checkout -B models-package upstream/models-package
Med formatet för dessa kommandon kan du hämta startkod från Microsoft-lagringsplatsen på GitHub, som kallas
upstream
. Snart skickar du den här grenen till din GitHub-lagringsplats, som kallasorigin
.Som ett valfritt steg kontrollerar du att katalogen Models inte längre finns i utforskaren. I stället bör du ha Controllers, Viewsoch andra kataloger.
Konsultera modellpaketet
Öppna filen Tailspin.SpaceGame.Web.csproj och lägg till följande
ItemGroup
:<ItemGroup> <PackageReference Include="Tailspin.SpaceGame.Web.Models" Version="1.0.0" /> </ItemGroup>
Se till att placera
ItemGroup
inuti nodenProject
. Filen bör likna detta:<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>net6.0</TargetFramework> <ProjectGuid>{A0C4E31E-AC75-4F39-9F59-0AA19D9B8F46}</ProjectGuid> </PropertyGroup> <ItemGroup> <PackageReference Include="Tailspin.SpaceGame.Web.Models" Version="1.0.0" /> </ItemGroup> <ItemGroup> <Folder Include="wwwroot\images\avatars\" /> </ItemGroup> </Project>
Ändra versionen, "1.0.0", så att den innehåller pre-release-prefixet som genererades under byggprocessen. Här är ett exempel:
<PackageReference Include="Tailspin.SpaceGame.Web.Models" Version="1.0.0-CI-20200610-165738" />
Detta refererar till Tailspin.SpaceGame.Web.Models paket som du skapade i Azure Artifacts. Observera versionsnumret 1.0.0 plus suffixet före lanseringen. Detta matchar den första versionen som du publicerade till Azure Artifacts i föregående lektion.
Spara filen.
Obs
När du sparar filen kan Visual Studio Code be dig att återställa beroenden. Välj knappen Återställ för att återställa beroendena.
Ändra pipelinekonfigurationen
Grenen models-package
tillhandahåller ett initialt azure-pipelines.yml-fil. Här ändrar du pipelinekonfigurationen för att hämta Tailspin.SpaceGame.Web.Models-paketet från Azure Artifacts.
Öppna azure-pipelines.ymlfrån Visual Studio Code.
Ändra azure-pipelines.yml som visas här:
trigger: - '*' pool: vmImage: 'ubuntu-20.04' demands: - npm variables: buildConfiguration: 'Release' wwwrootDir: 'Tailspin.SpaceGame.Web/wwwroot' dotnetSdkVersion: '6.x' steps: - task: UseDotNet@2 displayName: 'Use .NET SDK $(dotnetSdkVersion)' inputs: version: '$(dotnetSdkVersion)' - task: NuGetToolInstaller@0 inputs: versionSpec: '5.9.1' - task: Npm@1 displayName: 'Run npm install' inputs: verbose: false - script: './node_modules/.bin/node-sass $(wwwrootDir) --output $(wwwrootDir)' displayName: 'Compile Sass assets' - task: gulp@1 displayName: 'Run gulp tasks' - script: 'echo "$(Build.DefinitionName), $(Build.BuildId), $(Build.BuildNumber)" > buildinfo.txt' displayName: 'Write build info' workingDirectory: $(wwwrootDir) - task: NuGetCommand@2 displayName: 'Restore project dependencies' inputs: command: 'restore' restoreSolution: '**/*.sln' feedsToUse: 'select' vstsFeed: '$(System.TeamProject)/Tailspin.SpaceGame.Web.Models' - task: DotNetCoreCLI@2 displayName: 'Build the project - $(buildConfiguration)' inputs: command: 'build' arguments: '--no-restore --configuration $(buildConfiguration)' projects: '**/*.csproj' - task: DotNetCoreCLI@2 displayName: 'Publish the project - $(buildConfiguration)' inputs: command: 'publish' projects: '**/*.csproj' publishWebProjects: false arguments: '--no-build --configuration $(buildConfiguration) --output $(Build.ArtifactStagingDirectory)/$(buildConfiguration)' zipAfterPublish: true - task: PublishBuildArtifacts@1 displayName: 'Publish Artifact: drop' condition: succeeded()
Den markerade koden visar var pipelinen återställer beroenden och letar i Azure Artifacts-feeden efter de beroenden som kan finnas där.
Mellanlagra, checka in och skicka ändringarna till GitHub.
git add . git commit -m "Add reference to Models package" git push origin models-package
Gå till Azure Pipelines och titta på byggkörningen. Bygget hämtar modellpaketet från Azure Artifacts och bygger projektet framgångsrikt.