Exercício – Faça referência ao pacote usando o aplicativo
Nesta unidade, você obterá o novo código Tailspin.SpaceGame.Web que tem as classes de modelo removidas. Em vez de fazer referência diretamente aos modelos, o código fará referência a eles do pacote criado na unidade anterior.
Aqui está uma lista das etapas:
- Obtenha o novo código de um branch do repositório Tailspin.SpaceGame.Web original.
- Faça referência ao novo pacote de Modelos, versão 1.0.0.
- Para procurar esse pacote no feed do Azure Artifacts, altere o pipeline de build.
- Assista ao pipeline compilar o aplicativo com êxito.
Buscar o branch do GitHub
Busque o branch models-package
do GitHub e faça check-out dele ou mude para ele.
Este branch contém o projeto Space Game com que você trabalhou nos módulos anteriores, mas o diretório Modelos foi removido.
Alterne para a cópia do Visual Studio Code que mostra o projeto Tailspin.SpaceGame.Web.
No terminal, para buscar um Branch chamado
models-package
no repositório Microsoft, execute os comandosgit
a seguir. Então alterne para esse branch.git fetch upstream models-package git checkout -B models-package upstream/models-package
O formato desses comandos permite obter o código inicial do repositório GitHub da Microsoft, conhecido como
upstream
. Em breve, você efetuará push desse branch para seu repositório do GitHub, conhecido comoorigin
.Como uma etapa opcional, verifique se o diretório Modelos não existe mais no Explorador de Arquivos. Em vez disso, você verá Controladores, Exibições e outros diretórios.
Fazer referência ao pacote de Modelos
Abra o arquivo Tailspin.SpaceGame.Web.csproj e adicione o seguinte
ItemGroup
:<ItemGroup> <PackageReference Include="Tailspin.SpaceGame.Web.Models" Version="1.0.0" /> </ItemGroup>
Coloque o
ItemGroup
dentro do nóProject
. O arquivo deve ser parecido com este:<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>
Modifique a versão "1.0.0" para incluir o prefixo de pré-lançamento gerado durante o processo de build. Aqui está um exemplo:
<PackageReference Include="Tailspin.SpaceGame.Web.Models" Version="1.0.0-CI-20200610-165738" />
Isso faz referência ao pacote Tailspin.SpaceGame.Web.Models que você criou no Azure Artifacts. Observe o número de versão, 1.0.0, mais o sufixo de pré-lançamento. Isso corresponde à versão inicial que você publicou no Azure Artifacts na unidade anterior.
Salve o arquivo.
Observação
Quando você salva o arquivo, o Visual Studio Code pode solicitar que você restaure as dependências. Selecione o botão Restaurar para restaurar as dependências.
Modificar a configuração do pipeline
O branch models-package
fornece o arquivo inicial azure-pipelines.yml. Aqui, você modifica a configuração de pipeline para efetuar pull do pacote Tailspin.SpaceGame.Web.Models do Azure Artifacts.
No Visual Studio Code, abra azure-pipelines.yml.
Modifique azure-pipelines.yml conforme mostrado aqui:
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()
O código realçado mostra em que local o pipeline restaura as dependências e examina seu feed do Azure Artifacts para as dependências que pode haver lá.
Prepare, confirme e envie suas alterações por push para o GitHub.
git add . git commit -m "Add reference to Models package" git push origin models-package
Acesse o Azure Pipelines e assista à execução do build. O build pega seu pacote de modelos do Azure Artifacts e compila o projeto com êxito.