Creare un pacchetto NuGet
Quando si crea un pacchetto per la libreria di classi Razor, si ottiene un risultato finale binario a cui i progetti Blazor possono fare riferimento e i componenti inclusi possono essere usati in tali progetti.
Nell'unità precedente è stata creata una libreria di classi Razor con un componente modale che fornisce una finestra di dialogo modale per le applicazioni Blazor. Per condividere tale componente per l'uso in altre applicazioni, è necessario creare un pacchetto e posizionarlo in un repository o una cartella da cui gli altri sviluppatori lo possono acquisire.
In questa unità si aggiornerà tale progetto e si genererà un pacchetto NuGet. Si distribuirà infine il pacchetto NuGet nell'applicazione Blazor Server.
Aggiungere proprietà del pacchetto a FirstClassLibrary
Aggiornare prima di tutto il progetto FirstClassLibrary con le proprietà che consentiranno di inserirlo in un pacchetto per la distribuzione come pacchetto NuGet.
Aprire il file di progetto per il progetto MyClassLibrary facendo doppio clic sul progetto in Esplora soluzioni di Visual Studio oppure aprendo il file MyClassLibrary.csproj in Visual Studio Code.
Vicino alla parte superiore del file aggiungere il contenuto seguente nella sezione con il tag
<PropertyGroup>
prima di chiudere il tag</PropertyGroup>
:<PackageId>My.FirstClassLibrary</PackageId> <Version>0.1.0</Version> <Authors>YOUR NAME</Authors> <Company>YOUR COMPANY NAME</Company> <Description>This is a Razor component library with a cool modal window component.</Description> </PropertyGroup>
Questo codice definisce la libreria di classi Razor indicando che ha
<PackageId>
"My.FirstClassLibrary" e<Version>
0.1.0. Immettere il proprio nome e il nome della società in questi due campi.
Inserire la libreria in un pacchetto per il riutilizzo
Eseguire quindi il comando .NET dalla riga di comando per creare un pacchetto per la libreria di classi Razor, in modo che le altre applicazioni esterne alla soluzione possano farvi riferimento.
È possibile seguire la stessa procedura nel processo di integrazione continua per creare un pacchetto per una libreria e distribuirlo in NuGet.org, in un repository GitHub o in un altro percorso per consentirne la condivisione da parte dell'organizzazione.
Nella stessa cartella del file MyClassLibrary.csproj eseguire questo comando:
dotnet pack
Questo comando scrive un file denominato My.FirstClassLibrary.0.1.0.nupkg nella cartella bin/Debug.
Aggiungere un riferimento al pacchetto NuGet nell'applicazione MyBlazorServer
Nell'applicazione MyBlazorServer si faceva già riferimento al progetto FirstClassLibrary, perché si trovava nella stessa struttura di cartelle dell'applicazione Web.
Ora si annullerà tale riferimento al progetto e si aggiungerà un riferimento al pacchetto NuGet creato in precedenza.
Questa procedura non è una configurazione tipica. I progetti di libreria che si trovano nella stessa cartella o soluzione delle applicazioni che vi vogliono fare riferimento possono fare direttamente riferimento al progetto, come illustrato nell'esercizio precedente.
Aprire il file MyBlazorServer.csproj facendo doppio clic sul nome del progetto MyBlazorServer in Visual Studio o aprendo il file in Visual Studio Code.
Nel file MyBlazorServer.csproj rimuovere la riga seguente:
<ProjectReference Include="..\FirstClassLibrary\FirstClassLibrary.csproj" />
Nella stessa cartella di MyBlazorServer.csproj eseguire il seguente comando:
dotnet add package My.FirstClassLibrary -s ..\FirstClassLibrary\bin\Debug
Questo comando recupera il pacchetto NuGet creato in precedenza, installa una copia nella cache del pacchetto NuGet locale e quindi aggiunge un riferimento a tale pacchetto nel file MyBlazorServer.csproj.
Controlla il tuo lavoro
Il nuovo pacchetto è stato installato correttamente? È possibile avviare l'applicazione FirstServer e visualizzare una finestra modale all'avvio dell'applicazione?
Verrà ora esaminato questo aspetto:
Avviare l'applicazione MyBlazorServer in Visual Studio selezionando F5 oppure nella cartella MyBlazorServer eseguendo il seguente comando:
dotnet run
Nel browser passare alla home page dell'applicazione MyBlazorServer:
https://localhost:5000
.Viene visualizzata la finestra di dialogo My first Modal dialog (Prima finestra di dialogo modale)? In tal caso, è tutto a posto! È stato creato un pacchetto ed è stato distribuito correttamente il progetto FirstClassLibrary. Tutte le applicazioni possono ora usare il componente finestra modale facendo riferimento al pacchetto NuGet appena creato.