Ejercicio: hacer referencia al paquete desde la aplicación
En esta unidad, obtendrá el nuevo código de Tailspin.SpaceGame.Web con las clases de modelo quitadas. En lugar de hacer referencia directamente a los modelos, el código hará referencia a ellos desde el paquete que creó en la unidad anterior.
Esta es una lista de los pasos:
- Obtener el código nuevo de una rama del repositorio Tailspin.SpaceGame.Web original.
- Hacer referencia al paquete Modelos nuevo, versión 1.0.0.
- Cambiar la canalización de compilación para buscar este paquete en la fuente de Azure Artifacts.
- Observar que la canalización ha compilado correctamente la aplicación.
Captura de la rama de GitHub
Capture la rama models-package
de GitHub, y restáurela o cambie a esa rama.
Esta rama contiene el proyecto Space Game con el que se ha trabajado en los módulos anteriores, pero se ha quitado el directorio Modelos.
Cambie a la copia de Visual Studio Code en la que se muestra el proyecto Tailspin.SpaceGame.Web.
Desde el terminal, para capturar una rama denominada
models-package
, ejecute los comandosgit
siguientes desde el repositorio de Microsoft. Después, cambie a esa rama.git fetch upstream models-package git checkout -B models-package upstream/models-package
El formato de estos comandos permite obtener el código de inicio del repositorio de Microsoft en GitHub, conocido como
upstream
. En resumen, va a insertar esta rama en el repositorio de GitHub, conocido comoorigin
.Como paso opcional, compruebe que el directorio Modelos ya no existe en el explorador de archivos. En su lugar, verá Controladores, Vistas y otros directorios.
Hacer referencia al paquete Modelos
Abra el archivo Tailspin.SpaceGame.Web.csproj y agregue el elemento
ItemGroup
siguiente:<ItemGroup> <PackageReference Include="Tailspin.SpaceGame.Web.Models" Version="1.0.0" /> </ItemGroup>
Asegúrese de situar el elemento
ItemGroup
dentro del nodoProject
. El archivo debe tener un aspecto similar 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 la versión, “1.0.0”, para que incluya el prefijo de versión preliminar que se generó durante el proceso de compilación. Veamos un ejemplo:
<PackageReference Include="Tailspin.SpaceGame.Web.Models" Version="1.0.0-CI-20200610-165738" />
Esto hace referencia al paquete Tailspin.SpaceGame.Web.Models que creó en Azure Artifacts. Fíjese en el número de versión, 1.0.0, seguido del sufijo de versión preliminar. Esto coincide con la versión inicial que se ha publicado en Azure Artifacts en la unidad anterior.
Guarde el archivo.
Nota
Cuando guarde el archivo, puede que Visual Studio Code le pida que restaure las dependencias. Seleccione el botón Restaurar para restaurar las dependencias.
Modificación de la configuración de canalización
La rama models-package
proporciona un archivo azure-pipelines.yml inicial. Aquí, modificará la configuración de canalización para extraer el paquete Tailspin.SpaceGame.Web.Models de Azure Artifacts.
En Visual Studio Code, abra azure-pipelines.yml.
Modifique azure-pipelines.yml como se muestra aquí:
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()
El código resaltado muestra el lugar donde la canalización restaura las dependencias y busca en la fuente de Azure Artifacts las dependencias que podrían estar allí.
Almacene provisionalmente, confirme y envíe los cambios a GitHub.
git add . git commit -m "Add reference to Models package" git push origin models-package
Vaya a Azure Pipelines y observe cómo se compila la ejecución. La compilación recoge el paquete Modelos de Azure Artifacts y compila el proyecto correctamente.