Exercice - Référencer le package à partir de l’application
Dans cette unité, vous obtenez le nouveau code Tailspin.SpaceGame.Web qui contient les classes de modèle supprimées. Au lieu de référencer directement les modèles, le code les référence à partir du package que vous avez créé dans l’unité précédente.
Voici une liste des étapes suivantes :
- Obtenez le nouveau code à partir d’une branche du dépôt Tailspin.SpaceGame.Web d’origine.
- Référencez le nouveau package Models, version 1.0.0.
- Pour rechercher ce package dans votre flux Azure Artifacts, modifiez le pipeline de build.
- Observez le pipeline générer l’application.
Récupérer (fetch) la branche à partir de GitHub
Récupérez la branche models-package à partir de GitHub pour l’extraire ou y basculer.
Cette branche contient le projet Space Game que vous avez utilisé dans les modules précédents, mais le répertoire Models a été supprimé.
Basculez vers votre copie de Visual Studio Code qui montre le projet Tailspin.SpaceGame.Web.
À partir du terminal, pour récupérer une branche nommée
models-packageà partir du référentiel Microsoft, exécutez les commandes suivantesgit. Passez ensuite à cette branche.git fetch upstream models-package git checkout -B models-package upstream/models-packageLe format de ces commandes vous permet d’obtenir du code de démarrage à partir du référentiel Microsoft sur GitHub, appelé
upstream. Dans quelques instants, vous pousserez (push) cette branche vers votre dépôt GitHub appeléorigin.En guise d’étape facultative, vérifiez que le répertoire Models n’existe plus dans l’Explorateur de fichiers. Au lieu de cela, vous devez disposer de contrôleurs, de vues et d’autres répertoires.
Référencer le package Modèles
Ouvrez le fichier Tailspin.SpaceGame.Web.csproj et ajoutez les éléments suivants
ItemGroup:<ItemGroup> <PackageReference Include="Tailspin.SpaceGame.Web.Models" Version="1.0.0" /> </ItemGroup>Veillez à placer le
ItemGroupà l'intérieur du nœudProject. Votre fichier doit ressembler à cet exemple :<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>Modifiez la version 1.0.0 pour inclure le préfixe de préversion généré pendant le processus de génération. Voici un exemple :
<PackageReference Include="Tailspin.SpaceGame.Web.Models" Version="1.0.0-CI-20200610-165738" />Cette entrée fait référence au package Tailspin.SpaceGame.Web.Models que vous avez créé dans Azure Artifacts. Notez le numéro de version 1.0.0, ainsi que le suffixe de préversion. Cette valeur correspond à la version initiale que vous avez publiée dans Azure Artifacts dans l’unité précédente.
Enregistrez le fichier.
Remarque
Lorsque vous enregistrez le fichier, Visual Studio Code peut vous demander de restaurer des dépendances. Sélectionnez le bouton Restaurer pour restaurer les dépendances.
Modifier la configuration du pipeline
La branche models-package fournit un fichier azure-pipelines.yml initial. Ici, vous modifiez la configuration du pipeline pour extraire le package Tailspin.SpaceGame.Web.Models à partir d’Azure Artifacts.
À partir de Visual Studio Code, ouvrez azure-pipelines.yml.
Modifiez azure-pipelines.yml comme indiqué ici :
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()Le code mis en surbrillance montre où le pipeline restaure les dépendances et examine votre flux Azure Artifacts pour les dépendances qui peuvent être présentes.
Étape, validation et envoi (push) de vos modifications vers GitHub.
git add . git commit -m "Add reference to Models package" git push origin models-packageAccédez à Azure Pipelines et regardez l’exécution de la build. La build récupère votre package Models à partir d’Azure Artifacts et génère le projet avec succès.