.NET アップグレード アシスタントを使用してアプリケーションを .NET 8へ移行する

普段のお仕事に役立つ普遍的なプログラミングTIPSや、業界で注目度が高い最新情報をお届けする「編集部ピックアップ」。
今回は「.NET アップグレード アシスタント」を使用してアプリケーションを .NET 8へ移行する方法ついてお届けします。

「.NET アップグレード アシスタント」は、以前のバージョンの .NET Frameworkや .NET Core、.NETで作成している .NETアプリケーションを、最新バージョンの .NETへアップグレードするツールです。

従来はCLIでのみ提供されており、こちらは本ブログでも紹介していました。

現在はこのCLI以外に .NET 8のリリースにあわせてVisual Studioの拡張機能としても提供されています。本記事ではこの拡張機能を利用して .NET Frameworkで作成したWindows Formsアプリケーションを .NET 8へアップグレードする方法について紹介します。

.NET アップグレード アシスタントのインストール

.NET アップグレード アシスタントのインストール方法は前述の公式ページに公開されています。

前提条件

.NET アップグレード アシスタントの実行には以下の条件がありますので予め環境を用意しておいてください。

  • Windows オペレーティング システム
  • Visual Studio 2022 17.1 以降

インストール手順

はじめにVisual Studioからインストールする方法を紹介します。Visual Studioのメニューから「拡張機能」-「Manage Extensions」をクリックします(最新バージョンのVisual Studio 2022 17.8.3では英語表記になっていますが、元々は「拡張機能の管理」という表記です)

インストール手順(メニュー)

次に「拡張機能の管理」の検索ボックスに「upgrade」を入力します。「.NET Upgrade Assistant」を選択して[ダウンロード]をクリックします。

インストール手順(拡張機能の管理)

ダウンロードが完了したらVisual Studioを閉じます。 拡張機能のインストール画面が表示されるので[Modify]をクリックしてインストールします。

インストール手順(拡張機能の管理)

「拡張機能の管理」で以下のようにエラー表示を繰り返す場合は、別の方法としてVisual Studio Marketplaceから直接「.NET Upgrade Assistant」をダウンロードしてインストールします。

インストール手順(Visual Studio Marketplace)

Windows Formsアプリケーションを .NET 8にアップグレードする

手順としては以下のページを参考にします。

サンプルプロジェクトは、GitHubで公開されている「Matching Game Sample」を使用します。

このサンプルプロジェクトでは、すでにサポートが終了している「.NET Framework 4.5.2」が設定されているので、こちらを「.NET Framework 4.8.1」に更新しておきます。

Windows Formsアプリケーションを .NET 8にアップグレードする(1)
Windows Formsアプリケーションを .NET 8にアップグレードする(2)

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

Windows Formsアプリケーションを .NET 8にアップグレードする(3)

以下の画面が表示されるので「Upgrade project to newer .NET version」をクリックします。

Windows Formsアプリケーションを .NET 8にアップグレードする(4)

アップグレードする方法として「In-place project upgrade」を選択して[Next]をクリックします。

Windows Formsアプリケーションを .NET 8にアップグレードする(5)

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

Windows Formsアプリケーションを .NET 8にアップグレードする(6)

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

Windows Formsアプリケーションを .NET 8にアップグレードする(7)

アップグレードが開始されます。完了すると以下のように結果が表示されます。「Complete: 13 succeeded, 0 failed, o skipped.」と表示されていて、すべて問題なくアップグレードできているのが確認できます。

Windows Formsアプリケーションを .NET 8にアップグレードする(8)

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

Windows Formsアプリケーションを .NET 8にアップグレードする(9)

「NuGet パッケージ マネージャー」から「MetroFramework」と「MetroFramework.RunTime」を削除します。これで警告の出ていた「MetroFramework.Design」、「MetroFramework.Fonts」、「MetroFramework.RunTime」の参照が削除されます。

Windows Formsアプリケーションを .NET 8にアップグレードする(10)

最後にMainForm.csでMainFormの基底クラスをMetroFormからFormに変更し、using句のMetroFramework.Formsを削除してMatchingGameのビルドを実行します。

using MatchingGame.Logic;
using System;
using System.Drawing;
using System.Windows.Forms;
//using MetroFramework.Forms;

namespace MatchingGame
{
    public partial class MainForm : Form
    {
:

以下のようにデモアプリの画面が表示されれば完了です。

Windows Formsアプリケーションを .NET 8にアップグレードする(11)

さいごに

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

\  この記事をシェアする  /