Latihan - Mereferensikan paket dari aplikasi
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.
Beralih ke salinan Visual Studio Code yang menampilkan proyek Tailspin.SpaceGame.Web.
Dari terminal, ambil cabang bernama
models-package
dari repositori Microsoft, lalu jalankan perintahgit
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 sebagaiorigin
.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
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 nodeProject
. 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>
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.
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.
Di Visual Studio Code, buka azure-pipelines.yml.
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.
Buat tahapan, terapkan, dan dorong perubahan Anda ke GitHub.
git add . git commit -m "Add reference to Models package" git push origin models-package
Buka Azure Pipelines dan lihat eksekusi build. Build akan mengambil paket Model Anda dari Azure Artifacts dan membangun proyek dengan sukses.