Microsoftは2020年11月10日、「.NET 5.0」を正式リリースした。開発プラットフォームである.NETの、最新のメジャーバージョンだ。.NET 5は、OS、ウェブ、フォームファクターなどによって別々に展開されてきたさまざまな種類の.NETを統合するという。
.NET4.8までと.NET 5は言葉こそ似ているが、全く別物である。
我々にとっては、.NET4.8までのフレームワークを使ってきたわけだが、今後、旧バージョンとなりメンテナンスされなくなる。将来的には使えなくなってしまうので今のうちから移植の用意をしておかなくてはならない。
移植は簡単に行えるらしい。詳細は
Windows フォーム デスクトップ アプリを .NET 5 に移行する方法
に記載されている。しかし、この説明はとても親切に行われているがどうもこのとおりやっても動かない。というか、通常では必要のないことまで記載されているような気がする。
今回、試行錯誤でやってみたので、2021年の1月現在ではこうやったら移植できたという、後々、自分で再現するときの参考に記したい。
目次
プロジェクトを右クリックし、 [プロジェクトのアンロード] を選択
プロジェクトを右クリックし、 [プロジェクト ファイルの編集] を選択
ファイルの内容を消去し、次の XML を貼り付け
<Project Sdk=”Microsoft.NET.Sdk”>
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net5.0-windows</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<RootNamespace>MatchingGame</RootNamespace>
<AssemblyName>MatchingGame</AssemblyName>
</PropertyGroup>
</Project>
<RootNamespace>MatchingGame</RootNamespace>
<AssemblyName>MatchingGame</AssemblyName>
この部分はプロジェクトのnamespaceを記載。旧XMLの当該部分を記載しても同じ。
プロジェクトを再度読み込む
編集が終了すると再度プロジェクトを読み込む。
リソースと設定はリソース自体もともと使っていなかったことから、特に何も設定していない。
App.config を編集
アプリに App.config ファイルがある場合は、<supportedRuntime> 要素を削除する。
これで移行は終了したが、このままビルドしてもエラーになる。必ず、Visual Studioを再起動させなければならない。
参照の追加
移行すると参照は全てなくなってしまいうので、新たに設定しなくてはならない。
.NET 5.0 でのプロジェクトでは、今までの参照が依存関係という表示に変更されている。参照の追加は、この 依存関係 を右クリックし、プロジェクト参照の追加 をクリックして行う。
参照先によっては.NET 5.0では使えないものもあるので注意が必要。
移行が終了すると、次のとおりソフトのアイコンが変更されている。