Ćwiczenie — Tworzenie odwołania do pakietu w aplikacji
W tej lekcji uzyskasz nowy kod Tailspin.SpaceGame.Web , który ma usunięte klasy modelu. Zamiast bezpośrednio odwoływać się do modeli, kod będzie odwoływać się do nich z pakietu utworzonego w poprzednim module.
Oto lista kroków:
- Pobierz nowy kod z gałęzi oryginalnego repozytorium Tailspin.SpaceGame.Web.
- Utwórz odwołanie do nowego pakietu Models w wersji 1.0.0.
- Aby wyszukać ten pakiet w kanale informacyjnym usługi Azure Artifacts, zmień potok kompilacji.
- Zobacz, jak potok pomyślnie skompiluje aplikację.
Pobieranie gałęzi z repozytorium GitHub
Pobierz models-package
gałąź z usługi GitHub i wyewidencjonuj lub przełącz się do tej gałęzi.
Zawiera ona projekt Space Game, nad którym pracowaliśmy w poprzednich modułach, ale katalog Models został usunięty.
Przejdź do kopii programu Visual Studio Code, która pokazuje projekt Tailspin.SpaceGame.Web .
W terminalu, aby pobrać gałąź o nazwie
models-package
z repozytorium Firmy Microsoft, uruchom następującegit
polecenia. Następnie przejdź do tej gałęzi.git fetch upstream models-package git checkout -B models-package upstream/models-package
Format tych poleceń umożliwia pobranie kodu początkowego z repozytorium Firmy Microsoft w witrynie GitHub znanej jako
upstream
. Wkrótce wypchniesz tę gałąź do repozytorium GitHub o nazwieorigin
.Opcjonalnie możesz się upewnić, że katalog Models nie istnieje już w eksploratorze plików. Zamiast tego powinny istnieć kontrolery, widoki i inne katalogi.
Tworzenie odwołania do pakietu Models
Otwórz plik Tailspin.SpaceGame.Web.csproj i dodaj następujący kod
ItemGroup
:<ItemGroup> <PackageReference Include="Tailspin.SpaceGame.Web.Models" Version="1.0.0" /> </ItemGroup>
Pamiętaj, aby umieścić
ItemGroup
wewnątrz węzłaProject
. Plik powinien wyglądać podobnie do następującego:<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>
Zmodyfikuj wersję "1.0.0", aby uwzględnić prefiks wersji wstępnej wygenerowany podczas procesu kompilacji. Oto przykład:
<PackageReference Include="Tailspin.SpaceGame.Web.Models" Version="1.0.0-CI-20200610-165738" />
Jest to odwołanie do pakietu Tailspin.SpaceGame.Web.Models utworzonego w usłudze Azure Artifacts. Zwróć uwagę, że numer wersji to 1.0.0 oraz sufiks wersji wstępnej. Jest to zgodne z początkową wersją opublikowaną w usłudze Azure Artifacts w poprzedniej lekcji.
Zapisz plik.
Uwaga
Podczas zapisywania pliku program Visual Studio Code może poprosić o przywrócenie zależności. Wybierz przycisk Przywróć, aby przywrócić zależności.
Modyfikowanie konfiguracji potoku
Gałąź models-package
zawiera początkowy plik azure-pipelines.yml . W tym miejscu zmodyfikujesz konfigurację potoku, aby ściągnąć pakiet Tailspin.SpaceGame.Web.Models z usługi Azure Artifacts.
W programie Visual Studio Code otwórz plik azure-pipelines.yml.
Zmodyfikuj plik azure-pipelines.yml , jak pokazano poniżej:
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()
Wyróżniony kod pokazuje, gdzie potok przywraca zależności i wyszukuje źródło danych usługi Azure Artifacts dla zależności, które mogą tam znajdować się.
Przygotuj, zatwierdź i wypchnij zmiany do usługi GitHub.
git add . git commit -m "Add reference to Models package" git push origin models-package
Przejdź do usługi Azure Pipelines i obejrzyj przebieg kompilacji. Podczas kompilacji pobierany jest pakiet Models z usługi Azure Artifacts, a projekt zostaje pomyślnie skompilowany.