Microsoft. AspNetCore. app per ASP.NET CoreMicrosoft.AspNetCore.App for ASP.NET Core

Il Framework condiviso ASP.NET Core (Microsoft.AspNetCore.App) contiene gli assembly sviluppati e supportati da Microsoft.The ASP.NET Core shared framework (Microsoft.AspNetCore.App) contains assemblies that are developed and supported by Microsoft. Microsoft.AspNetCore.Appviene installato quando è installato .NET Core 3,0 o versione successiva SDK .Microsoft.AspNetCore.App is installed when the .NET Core 3.0 or later SDK is installed. Il Framework condiviso è il set di assembly (file conestensione dll ) installato nel computer e include un componente di runtime e un Targeting Pack.The shared framework is the set of assemblies (.dll files) that are installed on the machine and includes a runtime component and a targeting pack. Per altre informazioni, vedere The shared framework (Il framework condiviso).For more information, see The shared framework.

  • I progetti destinati all' Microsoft.NET.Sdk.Web SDK fanno riferimento in modo Microsoft.AspNetCore.App implicito al Framework.Projects that target the Microsoft.NET.Sdk.Web SDK implicitly reference the Microsoft.AspNetCore.App framework.

Per questi progetti non sono necessari riferimenti aggiuntivi:No additional references are required for these projects:

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>netcoreapp3.0</TargetFramework>
  </PropertyGroup>
    ...
</Project>

Il Framework condiviso ASP.NET Core:The ASP.NET Core shared framework:

  • Non include dipendenze di terze parti.Doesn't include third-party dependencies.
  • Include tutti i pacchetti supportati dal team di ASP.NET Core.Includes all supported packages by the ASP.NET Core team.

Questa funzionalità richiede ASP.NET Core 2.x con destinazione .NET Core 2.x.This feature requires ASP.NET Core 2.x targeting .NET Core 2.x.

Il metapacchetto Microsoft.AspNetCore.App per ASP.NET Core:The Microsoft.AspNetCore.App metapackage for ASP.NET Core:

  • Non include le dipendenze di terze parti, ad eccezione di Json.NET, Remotion.Linq e IX-Async.Does not include third-party dependencies except for Json.NET, Remotion.Linq, and IX-Async. Queste dipendenze di terze parti sono necessarie per garantire il funzionamento delle principali funzionalità dei framework.These 3rd-party dependencies are deemed necessary to ensure the major frameworks features function.
  • 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).Includes all supported packages by the ASP.NET Core team except those that contain third-party dependencies (other than those previously mentioned).
  • 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).Includes all supported packages by the Entity Framework Core team except those that contain third-party dependencies (other than those previously mentioned).

Tutte le funzionalità di ASP.NET Core 2.x e Entity Framework Core 2.x sono incluse nel pacchetto Microsoft.AspNetCore.App.All the features of ASP.NET Core 2.x and Entity Framework Core 2.x are included in the Microsoft.AspNetCore.App package. I modelli di progetto predefiniti destinati a ASP.NET Core 2. x usano questo pacchetto.The default project templates targeting ASP.NET Core 2.x use this package. Per le applicazioni destinate a ASP.NET Core 2. x e Entity Framework Core 2. x, Microsoft.AspNetCore.App è consigliabile utilizzare il pacchetto.We recommend applications targeting ASP.NET Core 2.x and Entity Framework Core 2.x use the Microsoft.AspNetCore.App package.

Il numero di versione del metapacchetto Microsoft.AspNetCore.App rappresenta le versioni minime di ASP.NET Core e di Entity Framework Core.The version number of the Microsoft.AspNetCore.App metapackage represents the minimum ASP.NET Core version and Entity Framework Core version.

L'uso del metapacchetto Microsoft.AspNetCore.App implica restrizioni di versione che proteggono l'app:Using the Microsoft.AspNetCore.App metapackage provides version restrictions that protect your 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.If a package is included that has a transitive (not direct) dependency on a package in Microsoft.AspNetCore.App, and those version numbers differ, NuGet will generate an error.
  • Altri pacchetti aggiunti all'app non possono modificare la versione dei pacchetti inclusi in Microsoft.AspNetCore.App.Other packages added to your app cannot change the version of packages included in Microsoft.AspNetCore.App.
  • La coerenza della versione garantisce un'esperienza affidabile.Version consistency ensures a reliable experience. Microsoft.AspNetCore.App è stato progettato per impedire le combinazioni di versioni non testate di bit correlati usati contemporaneamente nella stessa applicazione.Microsoft.AspNetCore.App was designed to prevent untested version combinations of related bits being used together in the same app.

Le applicazioni che usano il metapacchetto Microsoft.AspNetCore.App sfruttano automaticamente il framework condiviso di ASP.NET Core.Applications that use the Microsoft.AspNetCore.App metapackage automatically take advantage of the ASP.NET Core shared framework. Quando si usa il metapacchetto Microsoft.AspNetCore.App, con l'applicazione non vengono distribuiti asset dai pacchetti NuGet di riferimento di ASP.NET Core. Questi asset sono infatti inclusi nel framework condiviso di .NET Core.When you use the Microsoft.AspNetCore.App metapackage, no assets from the referenced ASP.NET Core NuGet packages are deployed with the application—the ASP.NET Core shared framework contains these assets. Gli asset contenuti nel framework condiviso sono precompilati per migliorare i tempi di avvio dell'applicazione.The assets in the shared framework are precompiled to improve application startup time. Per altre informazioni, vedere The shared framework (Il framework condiviso).For more information, see The shared framework.

Il file di progetto seguente fa Microsoft.AspNetCore.App riferimento al metapacchetto per ASP.NET Core e rappresenta un modello tipico ASP.NET Core 2,2:The following project file references the Microsoft.AspNetCore.App metapackage for ASP.NET Core and represents a typical ASP.NET Core 2.2 template:

<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 tipico modello di ASP.NET Core 2. x.The preceding markup represents a typical ASP.NET Core 2.x template. Non specifica un numero di versione per il pacchetto di riferimento Microsoft.AspNetCore.App.It doesn't specify a version number for the Microsoft.AspNetCore.App package reference. Quando la versione non è specificata, una versione implicita viene specificata dall'SDK, vale a dire Microsoft.NET.Sdk.Web.When the version is not specified, an implicit version is specified by the SDK, that is, 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.We recommend relying on the implicit version specified by the SDK and not explicitly setting the version number on the package reference. In caso di domande su questo approccio, è possibile lasciare un commento GitHub nella pagina della discussione per la versione implicita Microsoft.AspNetCore.App.If you have questions on this approach, leave a GitHub comment at the Discussion for the Microsoft.AspNetCore.App implicit version.

La versione implicita è impostata su major.minor.0 per le app portabili.The implicit version is set to major.minor.0 for portable apps. Il meccanismo di roll forward del framework condiviso eseguirà l'app sulla versione compatibile più recente tra i framework condivisi installati.The shared framework roll-forward mechanism will run the app on the latest compatible version among the installed shared frameworks. 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.To guarantee the same version is used in development, test, and production, ensure the same version of the shared framework is installed in all environments. Per le app autonome, il numero di versione implicita è impostato sul valore major.minor.patch del framework condiviso nel bundle nell'SDK installato.For self contained apps, the implicit version number is set to the major.minor.patch of the shared framework bundled in the installed SDK.

Specificando un numero di versione nel riferimento Microsoft.AspNetCore.App non si garantisce che verrà scelta la versione del framework condiviso.Specifying a version number on the Microsoft.AspNetCore.App reference does not guarantee that version of the shared framework will be chosen. Si supponga, ad esempio, che venga specificata la versione "2.2.1", ma che "2.2.3" sia installato.For example, suppose version "2.2.1" is specified, but "2.2.3" is installed. In tal caso, l'app userà "2.2.3".In that case, the app will use "2.2.3". Benché non sia consigliabile, è possibile disabilitare il roll forward (patch e/o versioni secondarie).Although not recommended, you can disable roll forward (patch and/or minor). 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).For more information regarding dotnet host roll-forward and how to configure its behavior, see dotnet host roll forward.

<Project Sdk deve essere impostato su Microsoft.NET.Sdk.Web per usare la versione implicita Microsoft.AspNetCore.App.<Project Sdk must be set to Microsoft.NET.Sdk.Web to use the implicit version Microsoft.AspNetCore.App. Quando si usa <Project Sdk="Microsoft.NET.Sdk"> (senza il carattere finale .Web):When <Project Sdk="Microsoft.NET.Sdk"> (without the trailing .Web) is used:

  • Viene generato l'avviso seguente:The following warning is generated:

    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.Warning NU1604: Project dependency Microsoft.AspNetCore.App does not contain an inclusive lower bound. Include a lower bound in the dependency version to ensure consistent restore results.

  • Si tratta di un problema noto in .NET Core 2.1 SDK.This is a known issue with the .NET Core 2.1 SDK.

Aggiornare ASP.NET CoreUpdate ASP.NET Core

Il metapacchetto Microsoft.AspNetCore.App non è un pacchetto tradizionale aggiornato da NuGet.The Microsoft.AspNetCore.App metapackage isn't a traditional package that's updated from 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.Similar to Microsoft.NETCore.App, Microsoft.AspNetCore.App represents a shared runtime, which has special versioning semantics handled outside of NuGet. Per altre informazioni, vedere Pacchetti, metapacchetti e framework.For more information, see Packages, metapackages and frameworks.

Per aggiornare ASP.NET Core:To update ASP.NET Core:

  • Nei computer di sviluppo e nei server di compilazione: scaricare e installare .NET Core SDK.On development machines and build servers: Download and install the .NET Core SDK.
  • Nei server di distribuzione: scaricare e installare il runtime .NET Core.On deployment servers: Download and install the .NET Core runtime.

Le applicazioni eseguiranno il roll forward all'ultima versione installata al riavvio dell'applicazione.Applications will roll forward to the latest installed version on application restart. Non è necessario aggiornare il numero di versione di Microsoft.AspNetCore.App nel file di progetto.It's not necessary to update the Microsoft.AspNetCore.App version number in the project file. Per altre informazioni, vedere Roll forward delle app dipendenti dal framework.For more information, see Framework-dependent apps roll forward.

Se l'applicazione usava in precedenza Microsoft.AspNetCore.All, vedere Migrazione da Microsoft.AspNetCore.All a Microsoft.AspNetCore.App.If your application previously used Microsoft.AspNetCore.All, see Migrating from Microsoft.AspNetCore.All to Microsoft.AspNetCore.App.