Latihan - Mereferensikan paket dari aplikasi

Selesai

Dalam unit ini, Anda akan mendapatkan kode Tailspin.SpaceGame.Web dengan kelas model yang dihapus. Alih-alih mereferensikan model secara langsung, kode akan mereferensikannya dari paket yang Anda buat ke unit sebelumnya.

Berikut adalah daftar langkahnya:

  • Dapatkan kode baru dari cabang repositori asli Tailspin.SpaceGame.Web.
  • Mereferensikan paket Model baru, versi 1.0.0.
  • Untuk melihat paket ini dalam umpan Azure Artifacts Anda, ubah alur build.
  • Lihat alur yang berhasil membangun aplikasi.

Ambil cabang dari GitHub

Ambil cabang models-package dari GitHub, dan periksa atau beralih ke cabang itu.

Cabang ini berisi proyek Space Game yang Anda kerjakan di modul sebelumnya, tetapi direktori Model telah dihapus.

  1. Beralih ke salinan Visual Studio Code yang menampilkan proyek Tailspin.SpaceGame.Web.

  2. Dari terminal, ambil cabang bernama models-package dari repositori Microsoft, lalu jalankan perintah git berikut. Lalu beralih ke cabang tersebut.

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

    Format perintah ini memungkinkan Anda mendapatkan kode pemula dari repositori Microsoft di GitHub, yang dikenal sebagai upstream. Setelahnya, Anda akan mendorong cabang ini ke repositori GitHub Anda, yang dikenal sebagai origin.

  3. Sebagai langkah opsional, pastikan direktori Model tidak lagi ada dalam penjelajah file. Sebagai gantinya, Anda harus memiliki Pengontrol, Tampilan, dan direktori lainnya.

Mereferensikan paket Model

  1. Buka file Tailspin.SpaceGame.Web.csproj dan tambahkan ItemGroup berikut:

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

    Pastikan untuk menempatkan ItemGroup di dalam node Project. Sebaiknya file Anda menyerupai berikut:

    <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. Modifikasi versi "1.0.0" untuk menyertakan prefiks pra-rilis yang dihasilkan selama proses pembangunan. Berikut contohnya:

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

    Versi ini mereferensikan paket Tailspin.SpaceGame.Web.Models yang Anda buat di Azure Artifacts. Perhatikan nomor versi, 1.0.0, plus sufiks pra-rilis. Versi ini sesuai dengan versi awal yang Anda terbitkan ke Azure Artifacts di unit sebelumnya.

  3. Simpan file.

    Catatan

    Saat menyimpan file, Visual Studio Code mungkin meminta Anda untuk memulihkan dependensi. Pilih tombol Pulihkan untuk memulihkan dependensi.

Mengubah konfigurasi alur

Cabang models-package menyediakan file azure-pipelines.yml awal. Di sini, Anda akan memodifikasi konfigurasi alur untuk menarik paket Tailspin.SpaceGame.Web.Models dari Azure Artifacts.

  1. Di Visual Studio Code, buka azure-pipelines.yml.

  2. Modifikasi azure-pipelines.yml seperti yang ditunjukkan berikut:

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

    Kode yang disorot menunjukkan tempat alur memulihkan dependensi. Kode ini juga mencari dependensi yang mungkin berada di umpan Azure Artifacts Anda.

  3. Buat tahapan, terapkan, dan dorong perubahan Anda ke GitHub.

    git add .
    git commit -m "Add reference to Models package"
    git push origin models-package
    
  4. Buka Azure Pipelines dan lihat eksekusi build. Build akan mengambil paket Model Anda dari Azure Artifacts dan membangun proyek dengan sukses.