Visual Studio 2022 17.4.0 における .NET SDK リゾルバーエラーの対処方法

問題点

Visual Studio 2022 のバージョンを 17.4.0 にアップデートすると、既存のプロジェクトを開けないだけでなく、プロジェクトを新規作成してもソリューションとして作成されずに何もできなくなる。

 SDK リゾルバー エラー: "SDK "Microsoft.NET.Sdk" を解決しようとしているときに、SDK リゾルバー "Microsoft.DotNet.MSBuildSdkResolver" に失敗しました。
例外: "Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadManifestCompositionException: マニフェスト 'microsoft.net.workload.mono.toolchain.net7' [C:\Program Files\dotnet\sdk-manifests\7.0.100\microsoft.net.workload.mono.toolchain.net7\WorkloadManifest.json] 内のワークロード定義 'wasm-tools' が、マニフェスト 'microsoft.net.workload.mono.toolchain' [C:\Program Files\dotnet\sdk-manifests\7.0.100\microsoft.net.workload.mono.toolchain\WorkloadManifest.json] と競合しています

既存のプロジェクトを開こうとしたとき

プロジェクトは読み込めず、例外が発生する。

Visual Studio で新規作成したとき

ソリューションの中は空っぽになっており、スタートアッププロジェクトも指定できない。

dotnet コマンドから新規作成したとき

Unhandled exception: Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadManifestCompositionException: マニフェスト 'microsoft.net.workload.mono.toolchain' [C:\Program Files\dotnet\sdk-manifests\7.0.100\microsoft.net.workload.mono.toolchain\WorkloadManifest.json] 内のワークロード定義 'wasm-tools' が、マニフェスト 'microsoft.net.workload.mono.toolchain.net7' [C:\Program Files\dotnet\sdk-manifests\7.0.100\microsoft.net.workload.mono.toolchain.net7\WorkloadManifest.json] と競合しています

解決策

.NET 7 のプレビュー版をアンインストールする。

これでプロジェクトを開いたり、新規でプロジェクトを作成できるようになりました。めでたし👏

試したこと

Visual Studio のバージョンを戻す。

しかし、バージョンを 17.3.3 に戻してもプロジェクトを読み込めなかった。あとで気づいたけど .NET SDK 自体のエラーなので Visual Studio はただの被害者でしたw

参考

stackoverflow.com

イベントのお知らせ

2022年12月5日に MS Tech Camp #19 ~Imagine Cup PreEvent~ が開催されます!
マイクロソフトが主催する世界最大規模の学生向けITコンテスト“Imagine Cup”が今年もやってきます。 Imagine Cupの概要、これから挑戦するチームに向けてのエントリー方法などを紹介します。 特別セッションとして Imagine Cup 2022のアジア教育部門で優勝した現役高校生のTeam Lazeによる特別セッション、そしてパネルディスカッションとQ&Aがあります! ぜひご参加ください!

mspjp.connpass.com

Microsoft の学生コミュニティに興味がある学生さんへ

日本では約7名が活動している Microsoft Learn Student Ambassadors は、Microsoft 製品や技術を広める活動を行っています。興味がある方は下記リンクを覗いてみてください。応募方法や特典など、役立つ情報をまとめてみました!

speakerdeck.com

学生の皆さまの参加をお待ちしております!