📘

dotnet formatがエラーで動かない場合の一時的な回避策

2022/03/06に公開

Visual Studio Version 17.1.0 / .NET SDK 6.0.200 がインストールされた環境で
dotnet format をすると以下のエラーが出力される。

Unhandled exception: System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types.
Could not load file or assembly 'Microsoft.CodeAnalysis.CSharp, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. 指定されたファイルが見つかりません。
Could not load file or assembly 'Microsoft.CodeAnalysis, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. 指定されたファイルが 見つかりません。

github の dotnet format プロジェクトに、この問題の issue が作られている。
https://github.com/dotnet/format/issues/1519
回避策がコメントに書かれている。

dotnet-format の最新のバージョンをインストールして、
dotnet format ではなく dotnet-format コマンドを使うとエラーなく実行することができる。

.NET 6 SDKs

dotnet tool install -g dotnet-format --version "6.*" --add-source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v3/index.json

.NET 7 SDKs

dotnet tool install -g dotnet-format --version "7.*" --add-source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet7/nuget/v3/index.json

Discussion