Metapacchetto Microsoft.AspNetCore.All per ASP.NET Core 2.0Microsoft.AspNetCore.All metapackage for ASP.NET Core 2.0

Nota

È consigliabile che le applicazioni destinate a ASP.NET Core 2.1 e versioni successive usino il metapacchetto Microsoft.AspNetCore.App invece di questo pacchetto.We recommend applications targeting ASP.NET Core 2.1 and later use the Microsoft.AspNetCore.App metapackage rather than this package. Vedere Migrazione da Microsoft.AspNetCore.All a Microsoft.AspNetCore.App in questo articolo.See Migrating from Microsoft.AspNetCore.All to Microsoft.AspNetCore.App in this article.

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.All per ASP.NET include:The Microsoft.AspNetCore.All metapackage for ASP.NET Core includes:

  • Tutti i pacchetti supportati dal team ASP.NET Core.All supported packages by the ASP.NET Core team.
  • Tutti i pacchetti supportati da Entity Framework Core.All supported packages by the Entity Framework Core.
  • Le dipendenze interne e di terze parti usate da ASP.NET Core e da Entity Framework Core.Internal and 3rd-party dependencies used by ASP.NET Core and Entity Framework Core.

Tutte le funzionalità di ASP.NET Core 2.x e Entity Framework Core 2.x sono incluse nel pacchetto Microsoft.AspNetCore.All.All the features of ASP.NET Core 2.x and Entity Framework Core 2.x are included in the Microsoft.AspNetCore.All package. I modelli di progetto predefiniti destinati ad ASP.NET Core 2.0 usano questo pacchetto.The default project templates targeting ASP.NET Core 2.0 use this package.

Il numero di versione del metapacchetto Microsoft.AspNetCore.All rappresenta la versione di ASP.NET Core e la versione di Entity Framework Core.The version number of the Microsoft.AspNetCore.All metapackage represents the ASP.NET Core version and Entity Framework Core version.

Le applicazioni che usano il metapacchetto Microsoft.AspNetCore.All sfruttano automaticamente l'archivio di runtime di .NET Core.Applications that use the Microsoft.AspNetCore.All metapackage automatically take advantage of the .NET Core Runtime Store. L'archivio di runtime contiene tutti gli asset di runtime necessari per eseguire le applicazioni ASP.NET Core 2.x.The Runtime Store contains all the runtime assets needed to run ASP.NET Core 2.x applications. Quando si usa il metapacchetto Microsoft.AspNetCore.All, con l'applicazione non vengono distribuiti asset dai pacchetti NuGet di riferimento di ASP.NET Core. Questi asset sono infatti inclusi nell'archivio di runtime di .NET Core.When you use the Microsoft.AspNetCore.All metapackage, no assets from the referenced ASP.NET Core NuGet packages are deployed with the application — the .NET Core Runtime Store contains these assets. Gli asset contenuti nell'archivio di runtime sono precompilati per migliorare i tempi di avvio dell'applicazione.The assets in the Runtime Store are precompiled to improve application startup time.

Per rimuovere i pacchetti che non vengono usati è possibile usare il processo di trimming dei pacchetti.You can use the package trimming process to remove packages that you don't use. I pacchetti di cui è stato eseguito il trimming sono esclusi dall'output dell'applicazione pubblicata.Trimmed packages are excluded in published application output.

Il file con estensione csproj seguente fa riferimento al metapacchetto Microsoft.AspNetCore.All per ASP.NET Core:The following .csproj file references the Microsoft.AspNetCore.All metapackage for ASP.NET Core:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.9" />
  </ItemGroup>

</Project>

Controllo delle versioni implicitoImplicit versioning

In ASP.NET Core 2.1 o versioni successive è possibile specificare il riferimento al pacchetto Microsoft.AspNetCore.All senza la versione.In ASP.NET Core 2.1 or later, you can specify the Microsoft.AspNetCore.All package reference without a version. Quando la versione non è specificata, il SDK specifica una versione implicita (Microsoft.NET.Sdk.Web).When the version isn't specified, an implicit version is specified by the SDK (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, lasciare un commento GitHub nella pagina della discussione per la versione implicita Microsoft.AspNetCore.App.If you have questions about 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 esegue l'app sulla versione compatibile più recente tra i framework condivisi installati.The shared framework roll-forward mechanism runs 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.

Il fatto di specificare un numero di versione nel riferimento del pacchetto Microsoft.AspNetCore.All non garantisce che verrà scelta la versione corrispondente del framework condiviso.Specifying a version number on the Microsoft.AspNetCore.All package reference does not guarantee that version of the shared framework is chosen. Si supponga ad esempio che venga specificata la versione "2.1.1" ma che sia installata la versione "2.1.3".For example, suppose version "2.1.1" is specified, but "2.1.3" is installed. In tal caso, l'app userà "2.1.3".In that case, the app will use "2.1.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.

Il SDK del progetto deve essere impostato su Microsoft.NET.Sdk.Web nel file di progetto perché venga usata la versione implicita di Microsoft.AspNetCore.All.The project's SDK must be set to Microsoft.NET.Sdk.Web in the project file to use the implicit version of Microsoft.AspNetCore.All. Se è specificato il SDK Microsoft.NET.Sdk (<Project Sdk="Microsoft.NET.Sdk"> nella parte superiore del file di progetto), viene generato l'avviso seguente:When the Microsoft.NET.Sdk SDK is specified (<Project Sdk="Microsoft.NET.Sdk"> at the top of the project file), the following warning is generated:

Avviso NU1604: la dipendenza Microsoft.AspNetCore.All 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.All 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 con .NET Core 2.1 SDK, che verrà risolto in .NET Core 2.2 SDK.This is a known issue with the .NET Core 2.1 SDK and will be fixed in the .NET Core 2.2 SDK.

Migrazione da Microsoft.AspNetCore.All a Microsoft.AspNetCore.AppMigrating from Microsoft.AspNetCore.All to Microsoft.AspNetCore.App

I pacchetti seguenti sono inclusi in Microsoft.AspNetCore.All ma non il pacchetto Microsoft.AspNetCore.App.The following packages are included in Microsoft.AspNetCore.All but not the Microsoft.AspNetCore.App package.

  • Microsoft.AspNetCore.ApplicationInsights.HostingStartup
  • Microsoft.AspNetCore.AzureAppServices.HostingStartup
  • Microsoft.AspNetCore.AzureAppServicesIntegration
  • Microsoft.AspNetCore.DataProtection.AzureKeyVault
  • Microsoft.AspNetCore.DataProtection.AzureStorage
  • Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv
  • Microsoft.AspNetCore.SignalR.Redis
  • Microsoft.Data.Sqlite
  • Microsoft.Data.Sqlite.Core
  • Microsoft.EntityFrameworkCore.Sqlite
  • Microsoft.EntityFrameworkCore.Sqlite.Core
  • Microsoft.Extensions.Caching.Redis
  • Microsoft.Extensions.Configuration.AzureKeyVault
  • Microsoft.Extensions.Logging.AzureAppServices
  • Microsoft.VisualStudio.Web.BrowserLink

Per passare da Microsoft.AspNetCore.All a Microsoft.AspNetCore.App, se l'app usa qualsiasi API dai pacchetti sopra o pacchetti inseriti da tali pacchetti, aggiungere i riferimenti a tali pacchetti nel progetto.To move from Microsoft.AspNetCore.All to Microsoft.AspNetCore.App, if your app uses any APIs from the above packages, or packages brought in by those packages, add references to those packages in your project.

Tutte le dipendenze dei pacchetti precedenti che non sono in altro modo dipendenze di Microsoft.AspNetCore.App non sono incluse in modo implicito.Any dependencies of the preceding packages that otherwise aren't dependencies of Microsoft.AspNetCore.App are not included implicitly. Ad esempio:For example:

  • StackExchange.Redis come dipendenza di Microsoft.Extensions.Caching.RedisStackExchange.Redis as a dependency of Microsoft.Extensions.Caching.Redis
  • Microsoft.ApplicationInsights come dipendenza di Microsoft.AspNetCore.ApplicationInsights.HostingStartupMicrosoft.ApplicationInsights as a dependency of Microsoft.AspNetCore.ApplicationInsights.HostingStartup

Aggiornare ASP.NET Core 2.1Update ASP.NET Core 2.1

È consigliabile eseguire la migrazione al metapacchetto Microsoft.AspNetCore.App per la versione 2.1 e versioni successive.We recommend migrating to the Microsoft.AspNetCore.App metapackage for 2.1 and later. Per continuare a usare il metapacchetto Microsoft.AspNetCore.All e assicurarsi che venga distribuita la versione della patch più recente:To keep using the Microsoft.AspNetCore.All metapackage and ensure the latest patch version is deployed:

  • Nei computer di sviluppo e nei server di compilazione: installare il .NET Core SDK più recente.On development machines and build servers: Install the latest .NET Core SDK.
  • Nei server di distribuzione: installare il runtime di .NET Core più recente.On deployment servers: Install the latest .NET Core runtime. L'app eseguirà il roll forward all'ultima versione installata al riavvio dell'applicazione.Your app will roll forward to the latest installed version on an application restart.