先日Visual Studio 2022 17.0 Preview 3が公開されました。新しいプレビューが公開されると、プレビュー機能のダイアログ(今はタブになりましたが)を一通り見るのですが、気になる項目が増えていました。

もちろん有効にします(非推奨とか、古い互換性のための機能でない限り原則有効にします😉)。

Visual Studioのソリューションを選択して保存時にslnxが増えています。

読み込むときにも選択肢として増えています。何が違うのでしょう。
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.10.34804.81
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BlazorApp1", "BlazorApp1\BlazorApp1\BlazorApp1.csproj", "{BFD7AF15-7028-43D2-AC5D-1AD1B7D7C4C7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BlazorApp1.Client", "BlazorApp1\BlazorApp1.Client\BlazorApp1.Client.csproj", "{82BD4B72-63B3-4C4F-992D-09FF5586C07D}"
EndProject
Global
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {B7807233-0A06-4B9F-B06C-4A4C48D34E24}
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{82BD4B72-63B3-4C4F-992D-09FF5586C07D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{82BD4B72-63B3-4C4F-992D-09FF5586C07D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{82BD4B72-63B3-4C4F-992D-09FF5586C07D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{82BD4B72-63B3-4C4F-992D-09FF5586C07D}.Release|Any CPU.Build.0 = Release|Any CPU
{BFD7AF15-7028-43D2-AC5D-1AD1B7D7C4C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BFD7AF15-7028-43D2-AC5D-1AD1B7D7C4C7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BFD7AF15-7028-43D2-AC5D-1AD1B7D7C4C7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BFD7AF15-7028-43D2-AC5D-1AD1B7D7C4C7}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
Blazorのプロジェクトをテンプレートで作っただけのおなじみの(?)sln構成です。これをslnxにするとこうなります。
<Solution> <Project Path="BlazorApp1\BlazorApp1.Client\BlazorApp1.Client.csproj" Type="Classic C#" /> <Project Path="BlazorApp1\BlazorApp1\BlazorApp1.csproj" Type="Classic C#" /> </Solution>
簡単!.NETのプロジェクトがSDKスタイルになった時のようです。前々から「projectのGUIDや構成定義は必要なのか」とか思っていたので、すべてcsprojに行ってくれたのは助かります。ただ、これまだ始まったばかりのようで、関連付けも行われていません。

そして、当然ですが、dotnetコマンドでもサポートされていないようでビルドができません。

devenvコマンドならビルドができます(もちろんPreview版のVisual StudioのDeveloper Command Promptを起動します)。

プレビューを使わないといけないからCIで使えないし、このslnのファイル構成を当てにしている拡張機能やツールもたくさんあるでしょうから、どのくらいでデフォルト有効になるのかちょっとわからないですが、XMLになってパースしやすくなるのと、サイズが劇的に小さくなるのは非常にうれしいですね。Visual Studio 2022 17.10正式版ではサポートになるのかな?楽しみです。