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 usings" 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.
