.NET Frameworkアプリを.NET(Core)アプリに簡単にアップグレードする方法

以前にも、.NET Frameworkから.NETへのアップグレード方法について紹介したけど、もっと簡単になっていたので改めて紹介。

以前の記事:.NET アップグレード アシスタント ツール使って.NET FrameworkのWindowsフォームアプリを.NET 6に置き換える

ここでは、試しにWindowsフォームアプリケーション(.NET Framework)を、.NET 7への移行を紹介しますが、
WPFアプリケーション等も基本的に同じ方法でいけると思います。


移行前のサンプルアプリ。
[バージョン情報]ボタンを押下すると、バージョン情報(※)を表示するだけのWindows Formsアプリ。
.NET Framework 4.6用のアプリとして作成。
これを、.NET 7にアップグレードしていきます。
※メニュー[プロジェクト]>[フォームの追加(Windowsフォーム)]>[情報ボックス(Windowsフォーム)]で追加可能。

アップグレード手順

以下、.NET Frameworkから.NETへのアップグレードするための手順。

  1. Visual Studioで移行対象のWindows Formsアプリ(.NET Framework)を開く。
  2. ソリューションエクスプローラーでプロジェクトを右クリックして「Upgrade」ポップアップメニューを選択。

    ※「Upgrade」が表示されない場合は、Visual Studio Installerから.NET Upgrade Assistantをインストールする必要があります。
     

  3. アップグレードアシスタントの画面が表示されるので、「In-place project upgrade」を選択。

    Welcome to the Upgrade Assistant!
    This experience will guide you through the process of upgrading your project towads newer technologies.
    Upgrade Assistant can help upgrade .NET Framerowk or .NET applications to newer .NET versions, bringing its cross-platform, hight-performance capabilities to your product.
    Ready for upgrade? Select how you want to upgrade App

    In-place project upgrade
    Upgrades project and its components in place using transformations applicable for the project.

    Side-by-side project upgrade
    Upgrades project and its components in a copy project using transformations applicable for the project.

  4. アップグレード先バージョンを選択し[Next]クリック。

    Target framework
    What is your perferred target framework?

  5. アップグレード対象のコンポーネントを選択し、[Upgrade selection]クリック。

    Select components to upgrade

  6. アップグレード完了。

以上で、.NETへの移行は完了。

[F5]でビルド&実行してみる。

問題なければ、移行前同様のアプリが起動される。


プロジェクトのプロパティを確認してみると、ターゲットフレームワークが「.NET 7.0」になっていることが確認できる。

ビルドされたファイルを確認してみる。

Release配下のnet7.0-windowsフォルダに、.NET 7.0用のexeファイルが作成されている。

ついでに、他PCで実行確認してみる。
ランタイムが用意されていない真っ新なWindows11で確認するため、サンドボックスで試してみる。

Releaseフォルダごとサンドボックスにコピーしてexeを実行。


.NET 7.0ランタイムが無いのでエラーメッセージが表示される。

You must install .NET Desktop Runtime to run this application.
Arcitetture: x64
App host version: 7.0.7
Learn about runtime installation:
https://aka.ms/dotnet/app-launch-failed
Would you like to download it now?

そのまま[はい]をクリックすると、.NET 7ランタイムがダウンロードされるので、インストールを実行。

これで、exeが実行できるようになった。

動作検証。

今回のサンプルアプリについて、.NET Framework 4.6版と、.NET 7.0版のアプリを起動して比較してみると、以下の3点が変わっていた。
①デフォルトアイコン
②画面サイズ
③バージョン情報(製品名、バージョン、著作権、会社名等)

非互換機能の部分は手直しが必要となる。

①②は移行後、微調整すればいいとして、③は以下を設定する必要がある。
プロジェクトのプロパティで、ビルドセクションにある「ビルド中にプロジェクト プロパティをアセンブリ属性に変換します」チェックをON。

リビルドして実行すると、バージョン情報が正しく表示されるようになった。

他にも非互換はいろいろありそうなので動作検証は必要そう。

 
 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


*