我该如何禁用 C# 10 中的新默认全局 using (请参见此处: https://github.com/dotnet/aspnetcore/issues/32451)?
我希望一眼就能看到所使用的命名空间,不想去查找文档来确定全局使用了哪些命名空间。
<ImplicitUsings>disable</ImplicitUsings>
必须添加到csproj文件中的PropertyGroup中。例如:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>disable</ImplicitUsings>
</PropertyGroup>
</Project>
如果你正在使用 .NET 6 的 beta 版本,你将需要使用 <DisableImplicitNamespaceImports>true</DisableImplicitNamespaceImports>
。<ImplicitUsings>enable</ImplicitUsings>
并没有解决问题,但将其设置为disabled
则可以。我的项目是多目标的:<TargetFrameworks>net6.0;net5.0</TargetFrameworks>
。 - Daniel Gabriel在我的情况下,我必须删除
<ImplicitUsings>enable</ImplicitUsings>
来自csproj文件
你不能这样做。
该问题询问如何禁用 C# 10 的 global using
指令 功能,即在 using
指令前加上 global
将该指令应用于整个编译单元(通常是项目)。
目前接受的答案是禁用 ImplicitUsings
MSBuild 属性,但不影响 global using
功能。相反,“隐式 using
” 是一个独立的功能,它建立在 global using
功能之上,通过自动透明地将一组 global using
指令注入到编译单元中,具体引用的程序集取决于项目类型。禁用 ImplicitUsings
属性会防止这种注入,但会使 global using
指令完全可用。