Windows フォーム デスクトップ アプリを .NET 7 にアップグレードする方法

この記事では、Windows フォーム デスクトップ アプリを .NET 7 にアップグレードする方法について説明します。 Windows フォームはクロスプラットフォーム テクノロジである .NET 上で実行されますが、Windows フォームは変わらず Windows 専用フレームワークです。 次の種類の Windows フォーム関連プロジェクトは、.NET Upgrade Assistant を使用してアップグレードできます。

  • Windows フォーム プロジェクト
  • コントロール ライブラリ
  • .NET ライブラリ

また、.NET Framework から .NET への移植に関するガイドの情報も確認する必要があります。

前提条件

デモ アプリ

この記事は、Windows フォームの絵合わせゲームのサンプル プロジェクト (.NET サンプル GitHub リポジトリからダウンロードできます) をアップグレードするというコンテキストで書かれています。

アップグレードを開始する

複数のプロジェクトをアップグレードする場合は、依存関係のないプロジェクトから始めます。 絵合わせゲームのサンプルでは、MatchingGame プロジェクトは MatchingGame.Logic ライブラリに依存しているため、MatchingGame.Logic を最初にアップグレードする必要があります。

ヒント

ソース管理やコピーなど、コードのバックアップを作成してください。

次の手順に従って Visual Studio でプロジェクトをアップグレードします。

  1. [ソリューション エクスプローラー] ウィンドウで MatchingGame.Logic プロジェクトを右クリックし、[アップグレード] を選択します。

    The .NET Upgrade Assistant's Upgrade menu item in Visual Studio.

    新しいタブが開き、アップグレードの実行方法を選択するように求められます。

  2. [In-place project upgrade] (インプレースのプロジェクトのアップグレード) を選択します。

  3. 次に、ターゲット フレームワークを選択します。 アップグレードするプロジェクトの種類に基づいて、さまざまなオプションが表示されます。 .NET Standard 2.0 は、ライブラリが Windows フォームなどのデスクトップ テクノロジに依存せず、.NET Framework プロジェクトと .NET プロジェクトの両方で使用できる場合に適しています。 ただし、最新の .NET リリースでは、.NET Standard より多くの言語とコンパイラの改善が実現しています。

    [.NET 7.0] を選択し、[次へ] を選択します。

    The .NET Upgrade Assistant's target framework decision tab.

  4. コード ファイルやライブラリなど、プロジェクトに関連するすべての成果物を含むツリーが表示されます。 個々の成果物またはプロジェクト全体 (既定) をアップグレードできます。 [Upgrade selection] (アップグレードの選択) を選択して、アップグレードを開始します。

    アップグレードが完了すると、結果が表示されます。

    The .NET Upgrade Assistant's upgrade results tab, showing two out of the 13 items were skipped.

    緑で塗りつぶされた円が付された成果物はアップグレードされ、空の緑の円のものはスキップされました。 スキップされた成果物は、アップグレード アシスタントによってアップグレードする内容が見つからなかったものを意味します。

アプリのサポート ライブラリがアップグレードされたので、メインのアプリをアップグレードします。

アプリケーションのアップグレード

すべてのサポート ライブラリがアップグレードされたら、メインのアプリ プロジェクトをアップグレードできます。 このサンプル アプリでは、アップグレードするライブラリ プロジェクトは 1 つだけであり、これは前のセクションでアップグレードされました。

  1. [ソリューション エクスプローラー] ウィンドウで MatchingGame プロジェクトを右クリックし、[アップグレード] を選択します。
  2. アップグレード モードとして [In-place project upgrade] (インプレースのプロジェクトのアップグレード) を選択します。
  3. ターゲット フレームワークとして [.NET 7.0] を選び、[次へ] を選択します。
  4. すべての成果物を選択したままにして、[Upgrade selection] (アップグレードの選択) を選択します。

アップグレードが完了すると、結果が表示されます。 Windows フォーム プロジェクトに警告記号がどのように表示されているかに注意してください。 それを展開すると、その手順に関する詳細情報が表示されます。

The .NET Upgrade Assistant's upgrade results tab, showing some of the result items have warning symbols.

プロジェクト アップグレード コンポーネントから、既定のフォントが変更されたことが指摘されています。 フォントはコントロールのレイアウトに影響を与える可能性があるため、UI が正しく配置されるように、プロジェクト内のすべてのフォームとカスタム コントロールを確認する必要があります。

クリーン ビルドを生成する

プロジェクトがアップグレードされたら、それをクリーンしてコンパイルします。

  1. [ソリューション エクスプローラー] ウィンドウで MatchingGame プロジェクトを右クリックし、[クリーンする] を選択します。
  2. [ソリューション エクスプローラー] ウィンドウで MatchingGame プロジェクトを右クリックし、[ビルド] を選択します。

アプリケーションでエラーが発生した場合は、[Error List] (エラー一覧) ウィンドウで、推奨される修正方法と共にそれらを確認できます。

まとめ

これで、Windows フォームの絵合わせゲームのサンプル プロジェクトが .NET 7 にアップグレードされました。 ご自身のプロジェクトを移行する場合、結果は異なります。 時間をとって、.NET Framework から .NET への移植に関するガイドと、「.NET Framework から .NET にアップグレードした後に最新化する」を確認してください。