今回は「.NET アップグレード アシスタント」を使用してアプリケーションを .NET 10へ移行する方法についてお届けします。
.NET アップグレード アシスタントとは?
「.NET アップグレード アシスタント」は、以前のバージョンの .NET Frameworkや .NETで作成しているアプリケーションを、最新バージョンの .NETへアップグレードするための機能です。
2025年12月時点での状況
この .NET アップグレード アシスタントは、従来はCLIやVisuai Studio拡張機能として提供されていましたが、Visuai Studio拡張機能は2025年11月にリリースされたVisuai Studio 2026やVisuai Studio 2022の17.14.17以降では、デフォルトで使用できないようになっています。
GitHub Copilotを使用した移行方法が推奨に
このVisuai Studio拡張機能の代わりに登場しているのが、GitHub Copilotを使用したアップグレード方法です。対象のプロジェクトを右クリックして表示されるコンテキストメニューには「最新化」という項目があり、こちらをクリックするとGitHub Copilotが起動して対象のプロジェクトのアップグレードを実施するようになります。


しかしながら、GitHub Copilotを使用して移行するにはPro以上の契約が必要となっており、Freeプランでは移行することができません。

Pro以上の契約を所有していない場合はどうすればいいのでしょうか?
.NET アップグレード アシスタントを使用するには?
Visuai Studio 2026やVisuai Studio 2022の最新バージョンでも、設定を変更することで従来使用していた .NET アップグレード アシスタントを使用することが可能になります。Visuai Studioのメニューから「ツール」-「オプション」を選択し、以下の「Enable legacy Upgrade Assistant」を有効にします。

有効にするとコンテキストメニューに「アップグレード」が表示されます。

こちらを選択すると .NET アップグレード アシスタントが表示されます。

Windows Formsアプリケーションを .NET 10にアップグレードする
サンプルプロジェクトは、GitHubで公開されている「Matching Game Sample」を使用します。
このサンプルプロジェクトでは、すでにサポートが終了している「.NET Framework 4.5.2」が設定されているので、こちらを「.NET Framework 4.8.1」に更新しておきます。


サンプルプロジェクトのMatchingGameはMatchingGame.Logicに依存しているので、まず、MatchingGame.Logicを最初にアップグレードします。「ソリューション エクスプローラー」でMatchingGame.Logicプロジェクトを右クリックし、「アップグレード」をクリックします。

以下の画面が表示されるので「プロジェクトを新しい .NETバージョンにアップグレードする」にある「所定の位置のプロジェクトのアップグレード」を選択します。

ターゲットフレームワークを「.NET 10.0」を選択して[次へ]をクリックします。

プロジェクト内でアップグレードするコンテンツを選択します。デフォルトではすべて選択した状態になっています。このままの状態で[アップグレードの選択]をクリックします。

アップグレードが開始されます。完了すると以下のように結果が表示されます。結果を見るとすべて問題なくアップグレードできているのが確認できます。

次に、MatchingGameを同様の手順でアップグレードします。完了すると以下のように結果が表示されます。警告が3個表示されているのが確認できます。

「NuGet パッケージ マネージャー」からMetroFramework、MetroFramework.Design、MetroFramework.Fonts、MetroFramework.RunTimeを削除します。

MainForm.csでMainFormの基底クラスをMetroFormからFormに変更し、using句のMetroFramework.Formsを削除します。
using MatchingGame.Logic;
using System;
using System.Drawing;
using System.Windows.Forms;
//using MetroFramework.Forms;
namespace MatchingGame
{
public partial class MainForm : Form
{
:GameSettings.csでMicrosoft.Win32の参照が有効になっていないので、NuGetパッケージマネージャーでMicrosoft.Win32.Registryをインストールします。

MatchingGameのビルドを実行します。以下のようにデモアプリの画面が表示されれば完了です。

さいごに
今回は .NET アップグレード アシスタントを使って .NET FrameworkのWindows Formsアプリケーションを .NET 10にアップグレードする方法を紹介しました。今回はGitHubにあるサンプルで試してみましたが、次回は弊社の .NET製品を組み込んだアプリケーションのアップグレードについても紹介したいと思います。
