Microsoft.AspNetCore.All元数据包的优缺点

时间:2017-10-05 18:50:52

标签: asp.net-core .net-core nuget-package csproj

ASP.NET Core 2.0中,无需在package references文件中添加个人.csprojMicrosoft.AspNetCore.All元数据包包含所有必需的包。我们可以将这个元数据包包含在.csproj文件中:

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

.Net Core应用程序中这个元数据包的主要优点和缺点是什么? (也考虑跨平台自包含应用程序)

1 个答案:

答案 0 :(得分:15)

当您创建针对.NET Core 2.0运行的ASP.NET Core 2.0应用程序时,您应该使用Microsoft.AspNetCore.All(对于ASP.NET Core 2.1及更高版本,建议使用Microsoft.AspNetCore.App),因为这是推荐的方法,有助于避免一长串的依赖项。

发布时,将应用树抖动,这意味着:构建过程将找出将使用元数据包中的哪些包,并将它们从已发布的文件夹中剥离以保持较小的大小。

使用它的另一个原因是.NET Core Runtime StoreMicrosoft.AspNetCore.All包是运行时存储的一部分,因此不需要发布(如上所述),但更重要的是,它是预编译的,因此启动时间也会改善。

然而

  1. 在定位.NET Framework&gt; = 4.6.1时,您无法使用Microsoft.AspNetCore.All(或Microsoft.AspNetCore.App),因为它分别需要netcoreapp2.0netcoreapp2.1
  2. 您不能也不应该在便携式类库(PCL)中使用它,因为它需要netcoreapp2.0而PCL应该定位netstandard2.0。有一些例外,例如,如果您依赖于仅在.NET Core上运行的(ASP.NET Core)程序包(或者您只需要.NET Core),因为目标netcoreappx.y的PCL无法运行在.NET Framework上