先日暗黙的な global using ディレクティブによる破壊的変更について書きました。
記事の中で実際に .NET 5 で通っていたコードが .NET 6 でエラーになるパターンを挙げて確認しました。
■ DisableImplicitNamespaceImports プロパティ
このエラーは、 .csproj ファイルで DisableImplicitNamespaceImports プロパティを設定すると回避できます(暗黙的な global using を無効化できます)。
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net6.0</TargetFramework> <DisableImplicitNamespaceImports>true</DisableImplicitNamespaceImports> </PropertyGroup> </Project>
ドキュメントによると ImplicitUsings プロパティというのもあるそうですが、設定しても効果が見られませんでした。要調査。
DisableImplicitNamespaceImports プロパティを設定したコードです。
以前エラーになっていた Console はエラーになっていません。代わりに String (System.String クラス) がエラーになっています。
※ using System;
がないため。
DisableImplicitNamespaceImports プロパティ。覚えておきましょう。