【发布时间】:2021-11-18 22:04:41
【问题描述】:
.NET 6 框架中有一些程序集,我 100% 肯定我永远不会使用它们,但是它们仍然出现在依赖项列表中,ReSharper(也可能是裸 VS)在导入类型时仍然会建议它们,而且总的来说它们的存在很烦人。
例如,我 100% 确定我永远不会使用 Microsoft.Win32.Registry 或 System.Drawing,但在编写 Color 时,我看到 IDE 建议我无法真正使用的类型。我正在放弃我的仅限 Windows 的方式,我不想再看到这些。
我在选择节点后尝试按Delete,没有任何反应。我尝试将<Reference Remove="System.Drawing" /> 添加到我的 .csproj 文件中,但没有任何反应。我尝试使用“删除未使用的引用”,没有任何反应。
问题:有没有办法摆脱这些引用?将它们从列表中删除是完美的,但将它们从 VS/R# 的建议中隐藏也可以。
我发现了多个关于删除 SO 上的引用的问题,但它们似乎都是关于 .NET 4.x,关于添加替代方案,所有这些对我的情况都没有用。
VS2022 17.0.1,R# 2021.3 EAP,.NET 6.0,最新的一切。
【问题讨论】:
-
你的
TargetFramework是什么? -
@GuruStron
<TargetFramework>net6.0</TargetFramework> -
您需要创建自定义 SDK 定义。一种只导入您需要的东西。 stackoverflow.com/a/56178624/736079
-
@jessehouwing 这种方法有什么方向吗?我看到
System.Drawing只在Microsoft.NET.Sdk.WindowsDesktop.WindowsForms.props和Microsoft.NET.Sdk.BeforeCommon.targets中被提及,它们似乎都只适用于WinForms 和.NETFramework 案例。Microsoft.Win32.Registry仅在Microsoft.NET.DefaultPackageConflictOverrides.targets中提及,我假设它用于删除较新 .NET Core 版本的 NuGet 引用。如果一开始没有包含自定义 SDK,我该如何删除它?
标签: c# .net visual-studio msbuild .net-6.0