如何移除Dependencies/Frameworks/Microsoft.NETCore.App下未使用的程序集引用
解决方案
方法1:调整项目文件禁用不必要的共享框架程序集
你之前直接用<Reference Remove>无效是因为这些程序集属于.NET 6共享框架的隐式引用,不是普通的项目引用,需要按以下方式配置:
- 若要完全控制引入的共享框架内容,在csproj的
<PropertyGroup>节点添加如下配置:
<DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences>
配置完成后你可以手动按需添加需要的FrameworkReference或者NuGet包,不需要的程序集不会被默认引入,自然不会出现在依赖列表和智能提示中。
- 如果你不想完全关闭隐式框架引用,只想排除特定程序集,可以添加如下配置(以System.Drawing和Microsoft.Win32.Registry为例):
<ItemGroup> <FrameworkReference Update="Microsoft.NETCore.App"> <ExcludeAssets>runtime</ExcludeAssets> <IgnoreForImplicitlyImportedTypes>true</IgnoreForImplicitlyImportedTypes> </FrameworkReference> <Reference Remove="System.Drawing, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <Reference Remove="Microsoft.Win32.Registry, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> </ItemGroup>
如果你开发的是ASP.NET Core项目,只需要把上面配置里的Microsoft.NETCore.App替换为Microsoft.AspNetCore.App即可,配置完成后重新加载项目即可生效。
方法2:IDE层面隐藏智能提示(适合不想修改项目配置的场景)
Visual Studio原生设置
- 右键点击项目的「依赖项」节点,选择「分析依赖项」->「配置代码分析规则集」
- 在规则集编辑器里找到不需要的程序集,勾选「不参与类型导入建议」,保存后重启VS即可生效。
ReSharper设置
- 打开ReSharper设置界面,导航到「代码编辑」->「代码补全」->「筛选器」
- 找到当前项目对应的依赖项列表,勾选
System.Drawing、Microsoft.Win32.Registry等你不需要的程序集旁边的「排除」选项 - 保存设置后这些程序集的类型就不会出现在R#智能提示列表,同时你可以在依赖项节点右键选择「隐藏已排除的引用」,让它们不在依赖列表中显示。
内容的提问来源于stack exchange,提问作者Athari
相关产品推荐
相关产品推荐

