はつねの日記

Kinect, Windows 10 UWP, Windows Azure, IoT, 電子工作

ソリューションファイルをVisual Studio 2022用に変更する

f:id:hatsune_a:20211221115625p:plain
Visual Studio 2022をインストールすると、Visual Studio 2019で作成したソリューションファイルの右肩には「16」の数字が表示されるようになります。
これを、図の右のように数字がついていないソリューションファイルにするにはどうしたらいいでしょうか。

これは非常に簡単で

  1. Visual Studio 2022でそのソリューションファイルを開く
  2. ソリューションエクスプローラーでソリューションを選択
  3. [ファイル]-[xxxxx.slnの保存]メニューで上書き保存

とすればOKです。

この操作によってソリューションファイルの内容が
f:id:hatsune_a:20211221115934p:plain
から、
f:id:hatsune_a:20211221120208p:plain
に変更になります。

Visual Studio 2022の条件付きコンパイルの設定が素敵すぎる件

まずは、プロジェクトのプロパティの条件付きコンパイルシンボルを見てもらいたいです!
Visualf:id:hatsune_a:20211220135409p:plain
どのソリューション構成の時にどのようなシンボルがあるのか一目瞭然です。
また、ソリューション構成名がデフォルトでシンボルに入るのもいいですね。
.NET Frameworkから.NET 6に移行するとき、コードを変える必要はほぼないのですが、どうしても一部変更したいときようなときは
#if NETCOREAPP
(ここは.NET 6)
#else
(ここは.NET Framework
#endif
のような感じで条件コンパイルが可能です。
便利ですね。

.NET 6でWPFアプリを作成してみる

Visual Studio 2022を使うと、.NET 6でWPFアプリが作成できます。
Visual Studioのプロジェクトでアプリのプロパティを開くと、今までとは雰囲気の違う内容が表示されます。
f:id:hatsune_a:20211220132448p:plain
ターゲットOSや、サポートされているOSバージョンなどの指定ができるのは、XamarinっぽいというかUWPアプリっぽい感じです。
上の例では、Windows 7 SPを最小OSとして、ターゲットOSは10.0.17763.0(1809=Windows 10 October 2018 Updateですね)としています。
10.0.17763.0は、2021年5月11日にサポートが終了しているので、ターゲットは最新のWindows 10バージョンにするか、2022年5月までサポートがある18363でもよいかもしれませんね。

Visual Studio 2022 が利用可能になりました

Visual Studio 2022がついにGA(リリース)されました。
visualstudio.microsoft.com
いよいよ64bitなVisual Studioですよ。

ダウンロードも可能です。

ダウンロードしたらインストールですね。
f:id:hatsune_a:20211110100104p:plain

必要なワークロード(機能)だけ選択してサクッとインストールできます。
f:id:hatsune_a:20211110100253p:plain

今回の注目はなんといってもここですね。「.NET 6」そして「C# 10」。
f:id:hatsune_a:20211110100331p:plain

それでは、今日のこれからの時間は、新しいVisual Studoの探検を開始したいと思います。
また、後日!

.NETランタイムと.NETデスクトップランタイム

.NET Core系のランタイムには、.NET Runtimeと.NET Desktop Runtimeがあります。
dotnet.microsoft.com

.NET Runtimeはコンソールアプリを実行するためのランタイム群

.NET Runtimeに含まれているのは、.NET Core系(5や6も含む)のコンソールアプリを実行するのに必要なDLL群です。

.NET Desktop Runtimeは、UI系DLL

.NET Desktop Runtimeには、WPFWindowsフォーム関連のDLLなどのUI系DLLが含まれています。
なお、.NET Desktop Runtimeを動作させるには.NET Runtimeが必要となります。
しかし、「.NET Desktop Rutimeのインストーラー」には、.NET Runtimeも含まれていて自動的にインストールされるので、「.NET Desktop Runtimeには.NET Runtimeが必要」というのは意識することは少ないでしょう。

.NET 6がいよいよRC1になったようです。

2021/09/14に.NET 6がいよいよRC1になったようです。
github.com
RC=Relase Candidateであり、いわゆるリリース候補版とよばれているものです。
.NET 6 RC1は、"Go Live”となっているので、いよいよ実開発に適用できる品質のものがでてきたということです。

.NET 6のロードマップ

github.com
.NET 6は、2021年11月に一般提供(GA)予定です。
あと2か月ありますので、このまま予定通り一般提供がはじまってくれるといいですね。
11月あたりのMicrosoftの大型イベントには、2021年11月2日~4日に開催される「Ignite 2021」があります。このあたりでGA発表されるのが有力かもですね。
myignite.microsoft.com

なぜ、.NET 6に注目しているのか

.NET Coreは、.NET 5にて.NET Frameworkからの乗り換えがかなり容易になりました。つまり、既存アプリのフレームワーク.NET Frameworkから.NET Core変更し、今後の機能エンハンスの計画に.NET Frameworkでは実現が難しかったな機能などを計画できるようになったということです。
.NET 6はそのような状況での最初のLTS (Long Term Support)が提供されるバージョンとなります。

.NET 6 RC 1を使うには

Visual Stuido 2022 Version 17.0以上が必要です。
visualstudio.microsoft.com
Visual Studio 2022は現在プレビュー 3.1版が提供されています。

Project Reunion改め、Windows App SDK

「Project Reunion」は、簡単に言えばUWP APIをWin32(WPFアプリやWinFormsアプリ)アプリで使用できるようにするものです。
UWP APIなのでWindows 10が前提となり、対応バージョンは(現在サポートされているWindows 10一番古いバージョン(ただしEnterprise LTSC)である Version 1809以降となります。

Project Reunionの名前が変わっていました

2021年6月25日くらいにProject Reunionの名前が「Windows App SDK」に変更になっていました。
現在のバージョンは0.8なので、プレビュー公開されていたProject Reunion 0.8を一般公開するにあたって名称を変更したことになるようです。

Windows App SDKのGA時期は?

Windows App SDKのロードマップを見ると1.0は、2021 Q4となっています。
github.com

Windows App SDKを使ったアプリをWindows 10 Version1809以前で動作させるとどうなる?

例えば、WinUI 3.0などはWindows 10のみをサポートしますが、Project Reunionコンポーネントの一部はWindows 7/8も含めて古いWindows 10バージョンもサポートしています。
とはいえ、Windows 7も基本的にはサポートが終わっていますし、Windows 8/8.1ユーザの大半はWindows 10に移行しているであろうことを考えると、そんなぎりぎりのところを責めるよりも

  • WinUI 3.0を使うならばWindows 10のみサポートと動作OSを限定する
  • Windows 10 Version 1809以降かのバージョンチェックを行い、該当する場合のみProject Reunionで実現した機能を提供する

というような動作環境仕様にした方がよいと思います。