广告
返回顶部
首页 > 资讯 > 后端开发 > ASP.NET >ASP.NET Core通过Microsoft.AspNetCore.App元包简化程序集引用
  • 111
分享到

ASP.NET Core通过Microsoft.AspNetCore.App元包简化程序集引用

2024-04-02 19:04:59 111人浏览 薄情痞子
摘要

ASP.net core下提供默认提供了一些在.net core不能直接使用的库,如日志、依赖注入、选项、通用主机、EntityFramework等,虽然我们可以通过Nuget的方式

ASP.net core下提供默认提供了一些在.net core不能直接使用的库,如日志、依赖注入、选项、通用主机、EntityFramework等,虽然我们可以通过Nuget的方式手动加载这些包,但这些包大多分得很细,往往会引入许多依赖的相关的包,造成动不动就引入了七八个dll的情况。虽然对于设计上来讲,包的粒度划分的细一些本身是更合理的行为,并且对实际的功能也没有什么影响,但对于很多像我一样有编程洁癖行为的开发者来说看着文件夹下一大堆和业务无关的dll多多少少有些不爽的。

可能微软也了解了我们的这一需求,推出了了元包这个概念。 元包就是一个 NuGet 包约定,描述了一组意义相关的包。 开发团队利用依赖项来描述这一组包。 他们通过这一组包来描述一个框架,然后有选择地发布出去。以某个框架为目标以及隐式引用元包,这实际上是添加了对元包中每一个独立包的引用依赖。同时也可用于发布应用。

使用元包具有以下好处:

  • 在引用大量细粒度包方面,提供了一种方便的用户体验。

  • 定义了一组经过充分测试且运行良好的包(包括指定的各种版本)。

.Net Core 元包有:

  • Microsoft.netcore.App - .net Core 发行版的部分库。 也就是 .netcoreApp 框架。

  • Microsoft.AspNetCore.App - 包含来自 asp.net Core 和 Entity Framework Core 的所有受支持的包(包含第三方依赖项的包除外)。 

  • Microsoft.AspNetCore.All – 在Microsoft.AspNetCore.App基础上包含了第三方依赖项的所有受支持包。 (这个不推荐了,建议使用Microsoft.AspNetCore.App)

  • Microsoft.NETCore.Portable.Compatibility - 一组兼容外观,使基于 mscorlib 的可移植类库(PCL) 得以在 .Net Core上运行。

有了这个基础后,也就是说,只要我们在项目中包含Microsoft.AspNetCore.App元包,就可以直接使用前面提到的那些库了。

方法很简单,在csproj中添加Microsoft.AspNetCore.All中即可。

    <ItemGroup>
        <PackageReference Include="Microsoft.AspNetCore.App" />
    </ItemGroup>

在.net 3.0中,需要使用FrameworkReference代替PackageReference ,效果如下

    <ItemGroup>
        <FrameworkReference Include="Microsoft.AspNetCore.App" />
    </ItemGroup>

添加了这个引用后,我们就可以和Asp.net core程序中一样使用那些额外的库了,发布程序的时候也不用附带那些dll了。实际上,这些dll是指向了.net core SDK中的那些dll了,无需额外发布。(这个也就是为什么PackageReference无需指定版本号的原因)

参考文章:

  • 包、元包和框架

  • ASP.NET Core的 Microsoft.AspNetCore.App 元包

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: ASP.NET Core通过Microsoft.AspNetCore.App元包简化程序集引用

本文链接: https://www.lsjlt.com/news/153257.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作