Cvičení – vytvoření odkazu na balíček v aplikaci

Dokončeno

V této lekci získáte nový kód Tailspin.SpaceGame.Web , který má odebrané třídy modelu. Namísto odkazování na modely přímo bude kód odkazovat na modely z balíčku, který jste vytvořili v předchozí lekci.

Tady je seznam kroků:

  • Získejte nový kód z větve původního úložiště Tailspin.SpaceGame.Web.
  • Vytvořte odkaz na nový balíček Models verze 1.0.0.
  • Pokud chcete tento balíček vyhledat v informačním kanálu Azure Artifacts, změňte kanál buildu.
  • Sledujte, jak kanál úspěšně sestaví aplikaci.

Načtení větve z GitHubu

Načtěte větev z GitHubu models-package a podívejte se nebo ji přepněte do této větve.

Tato větev obsahuje projekt Space Game, se kterým jste pracovali v předchozích modulech, ale byl odebrán adresář Models.

  1. Přepněte do kopie editoru Visual Studio Code, která zobrazuje projekt Tailspin.SpaceGame.Web .

  2. Z terminálu spusťte následující git příkazy a načtěte větev pojmenovanou models-package z úložiště Microsoftu. Pak přepněte do této větve.

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

    Formát těchto příkazů umožňuje získat počáteční kód z úložiště Microsoftu na GitHubu, označovaného jako upstream. Tuto větev zkrátka nasdílíte do vašeho úložiště GitHub, které je označené jako origin.

  3. Jako volitelný krok ověřte, že adresář Models již neexistuje v Průzkumníkovi souborů. Místo toho byste měli mít řadiče, zobrazení a další adresáře.

Vytvoření odkazu na balíček Models

  1. Otevřete soubor Tailspin.SpaceGame.Web.csproj a přidejte následujícíItemGroup:

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

    Nezapomeňte umístit uvnitř ItemGroupProject uzlu. Soubor by měl vypadat přibližně takto:

    <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. Upravte verzi 1.0.0 tak, aby zahrnovala předponu předběžné verze vygenerovanou během procesu sestavení. Tady je příklad:

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

    Odkazuje na balíček Tailspin.SpaceGame.Web.Models, který jste vytvořili v Azure Artifacts. Všimněte si čísla verze 1.0.0 a přípony předběžné verze. Odpovídá počáteční verzi, kterou jste publikovali v Azure Artifacts v předchozí lekci.

  3. Soubor uložte.

    Poznámka:

    Při ukládání souboru vás Visual Studio Code může požádat o obnovení závislostí. Výběrem tlačítka Obnovit obnovíte závislosti.

Úprava konfigurace kanálu

Větev models-package poskytuje počáteční soubor azure-pipelines.yml . Tady upravíte konfiguraci kanálu tak, aby načítá balíček Tailspin.SpaceGame.Web.Models z Azure Artifacts.

  1. V editoru Visual Studio Code otevřete azure-pipelines.yml.

  2. Upravte azure-pipelines.yml , jak je znázorněno tady:

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

    Zvýrazněný kód ukazuje, kde kanál obnoví závislosti a hledá v informačním kanálu Azure Artifacts závislosti, které tam můžou být.

  3. Připravte, potvrďte a nasdílejte své změny na GitHub.

    git add .
    git commit -m "Add reference to Models package"
    git push origin models-package
    
  4. Přejděte do Azure Pipelines a sledujte spuštění sestavení. Sestavení vybere balíček Models z Azure Artifacts a úspěšně sestaví projekt.