Übung: Verweisen auf das Paket aus der Anwendung

Abgeschlossen

In dieser Lerneinheit erhalten Sie den neuen Tailspin.SpaceGame.Web-Code, bei dem die Modellklassen entfernt wurden. Anstatt direkt auf die Modelle zu verweisen, verweist der Code aus dem Paket auf sie, das Sie in der vorherigen Lerneinheit erstellt haben.

Hier folgt eine Liste der Schritte:

  • Rufen Sie den neuen Code aus einem Branch des ursprünglichen Tailspin.SpaceGame.Web-Repositorys ab.
  • Verweisen Sie auf das neue Modellpaket, Version 1.0.0.
  • Um nach diesem Paket in Ihrem Azure Artifacts-Feed zu suchen, ändern Sie die Buildpipeline.
  • Beobachten Sie, wie die Pipeline die App erfolgreich erstellt.

Abrufen des Branchs aus GitHub

Rufen Sie den Branch models-package aus GitHub ab und checken ihn aus oder wechseln zu ihm.

Dieser Branch enthält das Projekt Space Game, mit dem Sie in den vorherigen Modulen gearbeitet haben, aber das Verzeichnis Models wurde entfernt.

  1. Wechseln Sie zu Ihrer Anzeige von Visual Studio Code, die das Projekt Tailspin.SpaceGame.Web anzeigt.

  2. Führen Sie im Terminal die folgenden git-Befehle aus, um einen Branch namens models-package aus dem Microsoft-Repository abzurufen. Wechseln Sie dann zu diesem Branch.

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

    Das Format dieser Befehle ermöglicht es Ihnen, den Startercode aus dem Microsoft-Repository auf GitHub abzurufen, das auch als upstream bezeichnet wird. In Kürze werden Sie diesen Branch per Push in Ihr GitHub-Repository (als origin bezeichnet) übertragen.

  3. Überprüfen Sie als optionalen Schritt, dass das Verzeichnis Models im Datei-Explorer nicht mehr vorhanden ist. Stattdessen sollten Sie über Controller, Ansichten und andere Verzeichnisse verfügen.

Verweisen auf das Modellpaket

  1. Öffnen Sie die Datei Tailspin.SpaceGame.Web.csproj, und fügen Sie die folgende ItemGroup hinzu.

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

    Stellen Sie sicher, dass Sie die ItemGroup innerhalb des Project-Knotens einfügen. Die Datei sollte in etwa wie folgt aufgebaut sein:

    <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. Ändern Sie die Versionsnummer in „1.0.0“, um das Präfix der Vorabversion einzubeziehen, das während des Buildprozesses generiert wurde. Hier sehen Sie ein Beispiel:

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

    Dies verweist auf das Paket Tailspin.SpaceGame.Web.Models, das Sie in Azure Artifacts erstellt haben. Beachten Sie die Versionsnummer, 1.0.0, sowie das Suffix der Vorabversion. Dies entspricht der ursprünglichen Version, die Sie in der vorherigen Lerneinheit in Azure Artifacts veröffentlicht haben.

  3. Speichern Sie die Datei .

    Hinweis

    Wenn Sie die Datei speichern, werden Sie von Visual Studio Code möglicherweise aufgefordert, die Abhängigkeiten wiederherzustellen. Wählen Sie die Schaltfläche Wiederherstellen aus, um die Abhängigkeiten wiederherzustellen.

Ändern der Pipelinekonfiguration

Der Branch models-package stellt eine azure-pipelines.yml-Anfangsdatei bereit. Hier ändern Sie die Pipelinekonfiguration, um das Paket Tailspin.SpaceGame.Web.Models aus Azure Artifacts zu pullen.

  1. Öffnen Sie die Datei azure-pipelines.yml in Visual Studio Code.

  2. Ändern Sie die Datei azure-pipelines.yml wie folgt:

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

    Der hervorgehobene Code zeigt, wo die Pipeline Abhängigkeiten wiederherstellt und in Ihrem Azure Artifacts-Feed nach den Abhängigkeiten sucht, die dort vorhanden sein könnten.

  3. Stagen, committen und pushen Sie Ihre Änderungen zu GitHub.

    git add .
    git commit -m "Add reference to Models package"
    git push origin models-package
    
  4. Navigieren Sie zu Azure Pipelines, und beobachten Sie die Buildausführung. Der Build ruft Ihr Modellpaket von Azure Artifacts ab und erstellt das Projekt erfolgreich.