Exercício – referenciar o pacote a partir da aplicação
Nesta unidade, você receberá o novo código Tailspin.SpaceGame.Web que tem as classes de modelo removidas. Em vez de referenciar diretamente os modelos, o código irá referenciá-los a partir do pacote que criou na unidade anterior.
Aqui está uma lista das etapas:
- Obter o novo código a partir de um ramo do repositório original Tailspin.SpaceGame.Web.
- Referenciar o novo pacote Modelos, versão 1.0.0.
- Para procurar este pacote no feed de Artefatos do Azure, altere o pipeline de compilação.
- Observe o pipeline criar o aplicativo com êxito.
Obter o ramo do GitHub
Buscar a models-package
ramificação no GitHub e fazer check-out, ou alternar para, essa ramificação.
Este ramo contém o projeto Space Game com o qual trabalhou nos módulos anteriores, mas o diretório Modelos foi removido.
Alterne para sua cópia do Visual Studio Code que mostra o projeto Tailspin.SpaceGame.Web .
No terminal, para buscar uma ramificação nomeada
models-package
no repositório da Microsoft, execute os seguintesgit
comandos. Em seguida, mude para esse ramo.git fetch upstream models-package git checkout -B models-package upstream/models-package
O formato desses comandos permite que você obtenha o código inicial do repositório da Microsoft no GitHub, conhecido como
upstream
. Em breve, irá enviar este ramo para o seu repositório do GitHub, conhecido comoorigin
.Como passo opcional, certifique-se de que o diretório Modelos já não existe no explorador de ficheiros. Em vez disso, você deve ter controladores, exibições e outros diretórios.
Referenciar o pacote 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>
Certifique-se de colocar o
ItemGroup
dentro doProject
nó. O seu ficheiro deve ser semelhante a 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 que foi gerado durante o processo de compilação. Eis um exemplo:
<PackageReference Include="Tailspin.SpaceGame.Web.Models" Version="1.0.0-CI-20200610-165738" />
Isto referencia o pacote Tailspin.SpaceGame.Web.Models que criou nos Artefactos do Azure. Tenha em atenção o número da versão, 1.0.0, e o sufixo de pré-lançamento. Isso corresponde à versão inicial que você publicou no Azure Artifacts na unidade anterior.
Guarde o ficheiro.
Nota
Quando você salva o arquivo, o Visual Studio Code pode solicitar que você restaure dependências. Selecione o botão Restaurar para restaurar as dependências.
Modificar a configuração do pipeline
A models-package
ramificação fornece um arquivo azure-pipelines.yml inicial. Aqui, você modificará a configuração do pipeline para extrair o pacote Tailspin.SpaceGame.Web.Models dos Artefatos do Azure.
No Visual Studio Code, abra azure-pipelines.yml.
Modifique azure-pipelines.yml como 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 onde o pipeline restaura dependências e procura no feed de Artefatos do Azure as dependências que podem estar lá.
Teste, consolide e envie as suas alterações no GitHub.
git add . git commit -m "Add reference to Models package" git push origin models-package
Vá para Azure Pipelines e veja a compilação ser executada. A compilação seleciona o pacote Modelos dos Artefactos do Azure e cria o projeto com êxito.