Esercizio - Fare riferimento al pacchetto dall'applicazione
In questa unità viene visualizzato il nuovo codice Tailspin.SpaceGame.Web con le classi di modello rimosse. Anziché fare riferimento direttamente ai modelli, il codice fa riferimento ai modelli dal pacchetto che avete creato nell'unità precedente.
Ecco un elenco dei passaggi:
- Ottieni il nuovo codice da un ramo del repository Tailspin.SpaceGame.Web originale.
- Fare riferimento al nuovo pacchetto Models versione 1.0.0.
- Per cercare questo pacchetto nel feed di Azure Artifacts, modificare la pipeline di compilazione.
- Osservare la corretta compilazione dell'app da parte della pipeline.
Recuperare il ramo da GitHub
Recuperare il ramo models-package
da GitHub ed eseguire il checkout o passare a esso.
Questo ramo contiene il progetto Space Game usato nei moduli precedenti, ma la directory Models è stata rimossa.
Passare alla copia di Visual Studio Code che mostra il progetto Tailspin.SpaceGame.Web.
Dal terminale eseguire i comandi seguenti
models-package
per recuperare un ramo denominatogit
dal repository Microsoft. Passare quindi a tale ramo.git fetch upstream models-package git checkout -B models-package upstream/models-package
Il formato di questi comandi consente di ottenere il codice di avvio dal repository Microsoft in GitHub, noto come
upstream
. In breve, si eseguirà il push di questo ramo al repository GitHub personale, noto comeorigin
.Come passaggio facoltativo, verificare che la directory Models non esista più in Esplora file. Dovrebbero invece venire visualizzati Controller, Visualizzazioni e altre directory.
Fare riferimento al pacchetto Models
Aprire il file Tailspin.SpaceGame.Web.csproj e aggiungere quanto segue
ItemGroup
:<ItemGroup> <PackageReference Include="Tailspin.SpaceGame.Web.Models" Version="1.0.0" /> </ItemGroup>
Assicurarsi di posizionare l'oggetto
ItemGroup
all'interno delProject
nodo. Il file dovrebbe essere simile a questo esempio:<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>
Modificare la versione 1.0.0 per includere il prefisso di versione preliminare generato durante il processo di compilazione. Ecco un esempio:
<PackageReference Include="Tailspin.SpaceGame.Web.Models" Version="1.0.0-CI-20200610-165738" />
Questa voce fa riferimento al pacchetto Tailspin.SpaceGame.Web.Models creato in Azure Artifacts. Nota il numero di versione 1.0.0, più il suffisso di versione preliminare. Questo valore corrisponde alla versione iniziale pubblicata in Azure Artifacts nell'unità precedente.
Salvare il file.
Annotazioni
Quando si salva il file, Visual Studio Code potrebbe chiedere di ripristinare le dipendenze. Selezionare il pulsante Ripristina per ripristinare le dipendenze.
Modificare la configurazione della pipeline
Il models-package
ramo fornisce un file di azure-pipelines.yml iniziale. In questo caso si modifica la configurazione della pipeline per eseguire il pull del pacchetto Tailspin.SpaceGame.Web.Models da Azure Artifacts.
In Visual Studio Code aprire azure-pipelines.yml.
Modificare azure-pipelines.yml come illustrato di seguito:
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()
Il codice evidenziato mostra dove la pipeline ripristina le dipendenze e cerca nel feed di Azure Artifacts le dipendenze che potrebbero essere presenti.
Preparare le modifiche per il commit, eseguirne il commit e il push in GitHub.
git add . git commit -m "Add reference to Models package" git push origin models-package
Vai su Azure Pipelines e monitora l'esecuzione della compilazione. La compilazione preleva il pacchetto Models da Azure Artifacts e compila correttamente il progetto.