在ASP.NET Core 2.0
中,无需在package references
文件中添加个人.csproj
。 Microsoft.AspNetCore.All
元数据包包含所有必需的包。我们可以将这个元数据包包含在.csproj
文件中:
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" />
.Net Core应用程序中这个元数据包的主要优点和缺点是什么? (也考虑跨平台自包含应用程序)
答案 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 Store。 Microsoft.AspNetCore.All
包是运行时存储的一部分,因此不需要发布(如上所述),但更重要的是,它是预编译的,因此启动时间也会改善。
然而
Microsoft.AspNetCore.All
(或Microsoft.AspNetCore.App
),因为它分别需要netcoreapp2.0
和netcoreapp2.1
netcoreapp2.0
而PCL应该定位netstandard2.0
。有一些例外,例如,如果您依赖于仅在.NET Core上运行的(ASP.NET Core)程序包(或者您只需要.NET Core),因为目标netcoreappx.y
的PCL无法运行在.NET Framework上