<FrameworkReference Include="Microsoft.AspNetCore.App&/>在.Net Core 3+中实际上是做什么的? [英] What <FrameworkReference Include="Microsoft.AspNetCore.App" /> is actually do in .net core 3+?

查看:0
本文介绍了<FrameworkReference Include="Microsoft.AspNetCore.App&/>在.Net Core 3+中实际上是做什么的?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

最近,我读到了关于Use the ASP.NET Core shared framework的报道,我想知道:

  1. 它在幕后是如何工作的?
  2. 添加<FrameworkReference Include="Microsoft.AspNetCore.App" />时有什么缺点或注意事项吗?

例如,我创建了一个简单的控制台应用程序,并使用self-hosted选项发布它。即使我没有显式使用任何Microsoft.AspNetCore包,<FrameworkReference Include="Microsoft.AspNetCore.App" /的输出大小也比<FrameworkReference Include="Microsoft.AspNetCore.App" /大20MB

推荐答案

共享框架是运行库中包含的程序集集合,因此不需要通过NuGet单独解析。不过,您可以将其视为一个NuGet包,因为其处理方式非常相似。当然,主要区别在于它不需要从NuGet下载,因为它可以在运行时本地使用。

因为它是随运行时一起分发的,这也意味着您不能引用它的特定版本。相反,您始终会获得运行库的可用版本中包含的版本。这样做的好处是,内容将在运行时更新时自动更新,因此依赖于某个共享框架的应用程序也将在运行时前滚。

  1. 试图详细回答这个问题超出了堆栈溢出答案的范围,因为这是一些深层的MSBuild逻辑。如果您有兴趣了解,可以查看dotnet/sdk repo,其中包含使Microsoft.NET.Sdk项目SDK及其子类型工作的所有内容,包括FrameworkReference实现。

  2. 首先,您应该知道,如果不使用该框架引用,就无法使用例如ASP.NET Core。所以你没有太多的选择。但在大多数情况下,您不会自己添加框架引用;ASP.NET核心应用程序使用Microsoft.NET.Sdk.Web项目SDK,该项目SDK在默认情况下已经包含框架引用。如果要在非Web项目中(例如,在ASP.NET Core的类库中)添加ASP.NET Core引用,则只需自己添加框架引用。

    除此之外,您还需要记住的事情不多。只需记住不要使用某个版本,并保持您的SDK和运行时更新,以确保您拥有所有最新的安全补丁。

这篇关于&lt;FrameworkReference Include=&quot;Microsoft.AspNetCore.App&/&gt;在.Net Core 3+中实际上是做什么的?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆