Microsoft.AspNetCore.App per ASP.NET Core
Nota
Questa non è la versione più recente di questo articolo. Per la versione corrente, vedere la versione .NET 9 di questo articolo.
Avviso
Questa versione di ASP.NET Core non è più supportata. Per altre informazioni, vedere i criteri di supporto di .NET e .NET Core. Per la versione corrente, vedere la versione .NET 9 di questo articolo.
Importante
Queste informazioni si riferiscono a un prodotto non definitive che può essere modificato in modo sostanziale prima che venga rilasciato commercialmente. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Per la versione corrente, vedere la versione .NET 9 di questo articolo.
Il framework condiviso di ASP.NET Core (Microsoft.AspNetCore.App
) contiene assembly sviluppati e supportati da Microsoft. Microsoft.AspNetCore.App
viene installato quando è installato .NET Core 3.0 o versione successiva. Il framework condiviso è il set di assembly (file .dll ) installati nel computer e include un componente di runtime e un pacchetto di destinazione. Per altre informazioni, vedere The shared framework (Il framework condiviso).
- I progetti destinati all'SDK
Microsoft.NET.Sdk.Web
fanno riferimento in modo implicito alMicrosoft.AspNetCore.App
framework.
Per questi progetti non sono necessari riferimenti aggiuntivi:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup>
...
</Project>
Framework condiviso ASP.NET Core:
- Non include dipendenze di terze parti.
- Include tutti i pacchetti supportati dal team ASP.NET Core.
Questa funzionalità richiede ASP.NET Core 2.x con destinazione .NET Core 2.x.
Metapacchetto Microsoft.AspNetCore.App per ASP.NET Core:
- Non include le dipendenze di terze parti, ad eccezione di Json.NET, Remotion.Linq e IX-Async. Queste dipendenze di terze parti sono necessarie per garantire il funzionamento delle principali funzionalità dei framework.
- Include tutti i pacchetti supportati dal team di ASP.NET Core ad eccezione di quelli che contengono dipendenze di terze parti (diverse da quelle indicate in precedenza).
- Include tutti i pacchetti supportati dal team di Entity Framework Core ad eccezione di quelli che contengono dipendenze di terze parti (diverse da quelle indicate in precedenza).
Tutte le funzionalità di ASP.NET Core 2.x e Entity Framework Core 2.x sono incluse nel pacchetto Microsoft.AspNetCore.App
. I modelli di progetto predefiniti destinati ASP.NET Core 2.x usano questo pacchetto. È consigliabile usare le Microsoft.AspNetCore.App
applicazioni destinate ASP.NET Core 2.x ed Entity Framework Core 2.x.
Il numero di versione del metapacchetto Microsoft.AspNetCore.App
rappresenta le versioni minime di ASP.NET Core e di Entity Framework Core.
L'uso del metapacchetto Microsoft.AspNetCore.App
implica restrizioni di versione che proteggono l'app:
- Se viene incluso un pacchetto che presenta una dipendenza transitiva (non diretta) in un pacchetto in
Microsoft.AspNetCore.App
e i numeri di versione sono diversi, NuGet genererà un errore. - Altri pacchetti aggiunti all'app non possono modificare la versione dei pacchetti inclusi in
Microsoft.AspNetCore.App
. - La coerenza della versione garantisce un'esperienza affidabile.
Microsoft.AspNetCore.App
è stato progettato per impedire le combinazioni di versioni non testate di bit correlati usati contemporaneamente nella stessa applicazione.
Le applicazioni che usano il metapacchetto Microsoft.AspNetCore.App
sfruttano automaticamente il framework condiviso di ASP.NET Core. Quando si usa il Microsoft.AspNetCore.App
metapacchetto, con l'applicazione non vengono distribuiti asset del ASP.NET Pacchetti NuGet core a cui si fa riferimento. Il framework condiviso ASP.NET Core contiene questi asset. Gli asset contenuti nel framework condiviso sono precompilati per migliorare i tempi di avvio dell'applicazione. Per altre informazioni, vedere The shared framework (Il framework condiviso).
Il file di progetto seguente fa riferimento al Microsoft.AspNetCore.App
metapacchetto per ASP.NET Core e rappresenta un modello tipico di ASP.NET Core 2.2:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
</Project>
Il markup precedente rappresenta un modello tipico ASP.NET Core 2.x. Non specifica un numero di versione per il pacchetto di riferimento Microsoft.AspNetCore.App
. Quando la versione non è specificata, una versione implicita viene specificata dall'SDK, vale a dire Microsoft.NET.Sdk.Web
. È consigliabile basarsi sulla versione implicita specificata dall'SDK e non impostando in modo esplicito il numero di versione sul riferimento al pacchetto. In caso di domande su questo approccio, è possibile lasciare un commento GitHub nella pagina della discussione per la versione implicita Microsoft.AspNetCore.App.
La versione implicita è impostata su major.minor.0
per le app portabili. Il meccanismo di roll forward del framework condiviso eseguirà l'app sulla versione compatibile più recente tra i framework condivisi installati. Per garantire che venga usata la stessa versione in fase di sviluppo, test e produzione, verificare che in tutti gli ambienti sia installata la stessa versione del framework condiviso. Per le app autonome, il numero di versione implicita è impostato sul valore major.minor.patch
del framework condiviso nel bundle nell'SDK installato.
Specificando un numero di versione nel riferimento Microsoft.AspNetCore.App
non si garantisce che verrà scelta la versione del framework condiviso. Si supponga, ad esempio, che venga specificata la versione "2.2.1", ma "2.2.3" sia installata. In tal caso, l'app userà "2.2.3". Benché non sia consigliabile, è possibile disabilitare il roll forward (patch e/o versioni secondarie). Per altre informazioni su come eseguire il roll forward dell'host dotnet e configurarne il comportamento, vedere dotnet host rollforward (Roll forward dell'host dotnet).
<Project Sdk
deve essere impostato su Microsoft.NET.Sdk.Web
per usare la versione implicita Microsoft.AspNetCore.App
. Quando si usa <Project Sdk="Microsoft.NET.Sdk">
(senza il carattere finale .Web
):
Viene generato l'avviso seguente:
Avviso NU1604: la dipendenza Microsoft.AspNetCore.App del progetto non contiene un limite inferiore inclusivo. Includere un limite inferiore nella versione della dipendenza per garantire risultati di ripristino coerenti.
Si tratta di un problema noto in .NET Core 2.1 SDK.
Aggiornare ASP.NET Core
Il Microsoft.AspNetCore.App
metapacchetto non è un pacchetto tradizionale aggiornato da NuGet. Analogamente a Microsoft.NETCore.App
, Microsoft.AspNetCore.App
rappresenta un runtime condiviso, con una semantica di controllo delle versioni speciale gestita all'esterno di NuGet. Per altre informazioni, vedere Pacchetti, metapacchetti e framework.
Per aggiornare ASP.NET Core:
- Nei computer di sviluppo e nei server di compilazione: scaricare e installare .NET Core SDK.
- Nei server di distribuzione: scaricare e installare il runtime di .NET Core.
Le applicazioni eseguiranno il roll forward all'ultima versione installata al riavvio dell'applicazione. Non è necessario aggiornare il numero di versione di Microsoft.AspNetCore.App
nel file di progetto. Per altre informazioni, vedere Roll forward delle app dipendenti dal framework.
Se l'applicazione usava in precedenza Microsoft.AspNetCore.All
, vedere Migrazione da Microsoft.AspNetCore.All a Microsoft.AspNetCore.App.