Övning – Referera till paketet från programmet

Slutförd

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.

  1. Växla till din kopia av Visual Studio Code som visar projektet Tailspin.SpaceGame.Web.

  2. Från terminalen, för att hämta en gren som heter models-package från Microsofts kodförråd, kör följande git 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 kallas origin.

  3. 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

  1. Ö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 noden Project. 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>
    
  2. Ä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.

  3. 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.

  1. Öppna azure-pipelines.ymlfrån Visual Studio Code.

  2. Ä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.

  3. Mellanlagra, checka in och skicka ändringarna till GitHub.

    git add .
    git commit -m "Add reference to Models package"
    git push origin models-package
    
  4. Gå till Azure Pipelines och titta på byggkörningen. Bygget hämtar modellpaketet från Azure Artifacts och bygger projektet framgångsrikt.