.NET 5默认加载的程序集有哪些?哪些需手动添加?
.NET 5 默认加载程序集与手动引入规则
核心区分逻辑
.NET 5 里,默认加载的程序集属于框架引用,由SDK自动纳入项目,无需手动添加引用,仅需通过using导入命名空间就能用其中类型;未被默认加载的程序集则属于可选组件,必须手动添加引用才能使用。
查看默认加载程序集的两种方法
- 项目文件+命令验证:打开项目的
.csproj文件,只要包含<Sdk="Microsoft.NET.Sdk">(控制台、类库等)或<Sdk="Microsoft.NET.Sdk.Web">(Web项目),SDK就会自动引入对应框架的核心程序集。执行dotnet list package命令,能列出项目所有默认包含的框架引用详情。 - 查看runtime配置文件:在你的.NET 5安装目录(如
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\5.0.17)下,打开Microsoft.NETCore.App.runtimeconfig.json,runtimeOptions.framework.assembly数组里的内容就是所有默认加载的程序集列表。
同目录程序集不被默认加载的原因
像你遇到的System.Net.HttpListener.dll,虽和默认程序集在同一目录,但它是场景化可选组件——并非所有.NET 5项目都需要HttpListener这类功能,因此SDK不会默认引入。这类组件需要手动添加引用:
- 打开项目
.csproj文件 - 添加以下节点:
<ItemGroup> <!-- 非Web项目可单独引用特定包 --> <PackageReference Include="System.Net.HttpListener" Version="5.0.0" /> <!-- Web项目可直接引入AspNetCore框架包 --> <FrameworkReference Include="Microsoft.AspNetCore.App" /> </ItemGroup>
添加后编译器就能识别ServerWebSocket这类类型。
快速判断技巧
- IDE(如VS Code)能自动提示
using语句的,对应程序集是默认加载的; - IDE无法识别类型,即便程序集在.NET安装目录下,也需要手动添加框架引用或NuGet包;
- 通用核心命名空间(如
System、System.Collections.Generic)对应的程序集默认加载,特定场景命名空间(如System.Net.HttpListener)对应的程序集通常需手动引入。
内容的提问来源于stack exchange,提问作者Yossi Sternlicht
相关产品推荐
相关产品推荐

