Oefening: verwijzen naar het pakket vanuit de toepassing

Voltooid

In deze les krijgt u de nieuwe code voor Tailspin.SpaceGame.Web waarvan de modelklassen zijn verwijderd. In plaats van rechtstreeks naar de modellen te verwijzen, verwijst de code ernaar vanuit het pakket dat u in de vorige les hebt gemaakt.

Hier volgt een lijst met de stappen:

  • Haal de nieuwe code op uit een vertakking van de oorspronkelijke Tailspin.SpaceGame.Web opslagplaats.
  • Raadpleeg het nieuwe modelpakket, versie 1.0.0.
  • Als u wilt zoeken naar dit pakket in uw Azure Artifacts-feed, wijzigt u de build-pijplijn.
  • Bekijk hoe de pijplijn de app succesvol bouwt.

De branch ophalen van GitHub

Haal de models-package vertakking op van GitHub en check uit of schakel over naar die vertakking.

Deze tak bevat het Space Game project waarmee je in de vorige modules hebt gewerkt, maar de map Models is verwijderd.

  1. Schakel over naar je exemplaar van Visual Studio Code dat het project Tailspin.SpaceGame.Web toont.

  2. Voer vanuit de terminal de volgende git opdrachten uit om een vertakking met de naam models-package op te halen uit de Microsoft-opslagplaats. Schakel vervolgens over naar die tak.

    git fetch upstream models-package
    git checkout -B models-package upstream/models-package
    

    Met de indeling van deze opdrachten kunt u starterscode ophalen uit de Microsoft-opslagplaats op GitHub, ook wel bekend als upstream. Binnenkort pusht u deze vertakking naar uw GitHub-opslagplaats, ook wel origingenoemd.

  3. Controleer als optionele stap of de map Models niet meer bestaat in de verkenner. In plaats daarvan moet u controllers, weergavenen andere mappen hebben.

Verwijzen naar het modelpakket

  1. Open het bestand Tailspin.SpaceGame.Web.csproj en voeg de volgende ItemGrouptoe:

    <ItemGroup>
      <PackageReference Include="Tailspin.SpaceGame.Web.Models" Version="1.0.0" />
    </ItemGroup>
    

    Zorg ervoor dat u de ItemGroup in het knooppunt Project plaatst. Uw bestand moet er als volgt uitzien:

    <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. Wijzig de versie 1.0.0 om het voorvoegsel voor de release op te nemen dat tijdens het buildproces is gegenereerd. Hier volgt een voorbeeld:

    <PackageReference Include="Tailspin.SpaceGame.Web.Models" Version="1.0.0-CI-20200610-165738" />
    

    Dit verwijst naar het Tailspin.SpaceGame.Web.Models pakket dat u in Azure Artifacts hebt gemaakt. Let op het versienummer 1.0.0, plus het achtervoegsel van de pre-release. Dit komt overeen met de initiƫle versie die u in de vorige eenheid hebt gepubliceerd naar Azure Artifacts.

  3. Sla het bestand op.

    Notitie

    Wanneer u het bestand opslaat, kan Visual Studio Code u vragen om afhankelijkheden te herstellen. Selecteer de knop Herstellen om de afhankelijkheden te herstellen.

De pijplijnconfiguratie wijzigen

De models-package vertakking biedt een eerste azure-pipelines.yml-bestand. Hier wijzigt u de pijplijnconfiguratie om het Tailspin.SpaceGame.Web.Models-pakket op te halen uit Azure Artifacts.

  1. Open azure-pipelines.ymlvanuit Visual Studio Code.

  2. Wijzig azure-pipelines.yml zoals hier wordt weergegeven:

    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()
    

    De gemarkeerde code laat zien waar de pijplijn afhankelijkheden herstelt en zoekt in uw Azure Artifacts-feed naar de afhankelijkheden die er mogelijk zijn.

  3. Uw wijzigingen faseren, doorvoeren en pushen naar GitHub.

    git add .
    git commit -m "Add reference to Models package"
    git push origin models-package
    
  4. Ga naar Azure Pipelines en bekijk hoe de build wordt uitgevoerd. De build haalt uw modelpakket op uit Azure Artifacts en bouwt het project succesvol.