Övning – Referera till paketet från programmet

Slutförd

I den här lektionen får du den nya Tailspin.SpaceGame.Web-koden som har modellklasserna borttagna. I stället för att referera direkt till modellerna refererar koden till dem från paketet 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 den nya versionen av 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 grenen models-package 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 tidigare moduler, men katalogen Models (Modeller) har tagits bort.

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

  2. Kör följande git kommandon för att hämta en gren med namnet models-package från Microsoft-lagringsplatsen från terminalen. 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 upstreamkallas . Snart kommer du att push-överföra grenen till din GitHub-lagringsplats med namnet origin.

  3. Om du vill kan du kontrollera att katalogen Models inte längre finns i Utforskaren. I stället bör du ha kontrollanter, vyer och andra kataloger.

Referera till paketet Models (Modeller)

  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 inuti ItemGroup Project noden. 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 paketet Tailspin.SpaceGame.Web.Models som du skapade i Azure Artifacts. Observera versionsnumret, 1.0.0, plus förhandsversionssuffixet. Detta matchar den första versionen som du publicerade till Azure Artifacts i föregående lektion.

  3. Spara filen.

    Kommentar

    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 innehåller en första azure-pipelines.yml-fil . Här ändrar du pipelinekonfigurationen för att hämta paketet Tailspin.SpaceGame.Web.Models från Azure Artifacts.

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

  2. Ändra azure-pipelines.yml enligt följande:

    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 push-överför dina ändringar 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 paketet Models (Modeller) från Azure Artifacts och bygger projektet.