How can I disable the new default global usings in C# 10 (see here: https://github.com/dotnet/aspnetcore/issues/32451)?
I want to see the used namespaces at a glance and don't want to look up the documentation which namespaces are used globally.
How can I disable the new default global usings in C# 10 (see here: https://github.com/dotnet/aspnetcore/issues/32451)?
I want to see the used namespaces at a glance and don't want to look up the documentation which namespaces are used globally.
<ImplicitUsings>disable</ImplicitUsings>
has to be added to the PropertyGroup in the csproj-file.
For example:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>disable</ImplicitUsings>
</PropertyGroup>
</Project>
If you are using a beta version of .NET 6, you will have to use <DisableImplicitNamespaceImports>true</DisableImplicitNamespaceImports>
.
In my case I had to remove
<ImplicitUsings>enable</ImplicitUsings>
from csproj
You cannot.
The question asks how to disable C# 10's global using
directive feature, whereby prefixing a using
directive with global
applies the directive to the entire compilation unit (usually the project).
The presently accepted answer of disabling the ImplicitUsings
MSBuild property does not affect the global using
feature. Instead, "implicit using
s" is a separate feature that builds upon the global using
feature by automatically, transparently injecting a set of global using
directives into the compilation unit, the specific assemblies referenced depending on the project type. Disabling the ImplicitUsings
property prevents this injection but leaves the global using
directive fully functional.