.NET Framework 4.8 アプリケーションを .NET アプリケーションに変換する - upgrade-assistant を利用した方法

アデノン
質問: .NET Framework アプリケーションを.NETに移行したい
.NET Framework 4.8 のWindows Formアプリケーションがあるのですが、そろそろ.NET 10あたりに移行したいです。 とはいえ、フォームのデザインとか作り直すのは面倒です。サクッと移行できる方法ありますかね?

.NET Framework 4.8 から .NETアプリケーションへの変換

.NET Framework 4.8のアプリケーションを.NETアプリケーションに変換する "upgrade-assistant" を利用すると、 比較的少ない手間で移植できます。

upgrade-assistant のインストール

Visual Studio がインストールされている場合には、Visual Studioのプログラムフォルダにある、 "x64 Native Tools Command Prompt for VS"のショートカットをクリックしてコマンドプロンプトを起動します。
.NET Framework 4.8 アプリケーションを .NET アプリケーションに変換する - upgrade-assistant を利用した方法:画像1

プロンプトに以下のコマンドを入力して、upgrade-assistant をインストールします。

dotnet tool install -g upgrade-assistant 


インストールできると下図の状態になります。
.NET Framework 4.8 アプリケーションを .NET アプリケーションに変換する - upgrade-assistant を利用した方法:画像2

upgrade-assistant を利用したアップデート

インストールした upgrade-assistant を利用して.NETアプリケーションに変換します。次のコマンドを実行します。

upgrade-assistant upgrade (アップデートしたいプロジェクトの .csproj ファイル)

実行すると、テレメトリに関する情報収集が始まります。[続行するには、任意のキーを押してください...]のメッセージが表示されますので、 キーを押します。~ .NET Framework 4.8 アプリケーションを .NET アプリケーションに変換する - upgrade-assistant を利用した方法:画像3

下図の画面が表示されます。
.NET Framework 4.8 アプリケーションを .NET アプリケーションに変換する - upgrade-assistant を利用した方法:画像4

今回は[所定の位置のプロジェクトのアップグレード (framework.inplace)]の項目を選択します。[Enter]キーを押します。
.NET Framework 4.8 アプリケーションを .NET アプリケーションに変換する - upgrade-assistant を利用した方法:画像5

[優先するターゲット フレームワークは何ですか?]の確認画面が表示されます。
.NET Framework 4.8 アプリケーションを .NET アプリケーションに変換する - upgrade-assistant を利用した方法:画像6

今回は ".NET 10.0"を選択します。[Enter]キーを押します。
.NET Framework 4.8 アプリケーションを .NET アプリケーションに変換する - upgrade-assistant を利用した方法:画像7

[必要なオプションをすべて収集し、アップグレードを実行する準備ができました。このまま続けますか?] の確認メッセージが表示されます。[y]キーを押して[Enter]キーを押します。
.NET Framework 4.8 アプリケーションを .NET アプリケーションに変換する - upgrade-assistant を利用した方法:画像8

アップグレードの処理が始まります。
.NET Framework 4.8 アプリケーションを .NET アプリケーションに変換する - upgrade-assistant を利用した方法:画像9

アップグレードが終了しました。下図の画面が表示されます。
.NET Framework 4.8 アプリケーションを .NET アプリケーションに変換する - upgrade-assistant を利用した方法:画像10

コードの修正

単純なプログラムの場合、アップグレード完了後にビルドがそのまま通り実行できる場合もあります。
アップグレードしただけではビルドが通らないアプリケーションもあります。以下の対応をします。

Settings.settings(App.config) からの値の読み込みの修正

.NET Framework のWindows Formアプリケーションでは、設定は Settings.settings ファイルから読み込みますが、 .NET アプリケーションではApp.configからの読み込みはサポートされていないです。
appsettings.json からの設定読み込みに変える必要があります。appsettings.json からの値の読み込みについてはこちらの記事を参照してください。

System.Data.SqlClient のインストール

.NET Frameworkでは System.Data.SqlClient はusingすればすぐに利用できますが、.NET アプリケーションでは、 NuGetでSystem.Data.SqlClient をインストールする必要があります。

.NETの場合、System.Data.SqlClient または Microsoft.Data.SqlClient が選択できますが、状況によってどちらを採用するかが分かれます。

.NET Framework 4.8 アプリケーションを .NET アプリケーションに変換する - upgrade-assistant を利用した方法:画像11

Microsoft.Data.SqlClient

こちらのライブラリのほうが、System.Data.SqlClient より新しいですが、xsdファイルからコードを生成する仕組みを利用している場合、 生成コードはSystem.Data.SqlClientで生成されるため、コードの置換が必要になり、かなりの手間がかかります。 一回置換しても、データセットの変更で再度コードが生成された場合に、すべてのSystem.Data.SqlClient を System.Data.SqlClientに置換する必要があります。
逆にコード生成がない場合、直接 SqlClient を呼び出している場合には、Microsoft.Data.SqlClient を利用しても大きな問題はないです。

System.Data.SqlClient

Microsoft.Data.SqlClientより古いですが、xsdファイルからコードを生成する仕組みを利用している場合との相性が良いです。


AuthorPortraitAlt
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
作成日: 2025-12-23