次の方法で共有


Windows フォーム .NET Framework から .NET に移行する

この記事では、.NET アップグレード アシスタントを使用して、Windows フォーム デスクトップ アプリを .NET にアップグレードする方法について説明します。 .NET はクロスプラットフォーム テクノロジであっても、Windows フォームは Windows 専用のフレームワークのままです。

前提条件

評価

アップグレードを実行する前に、プロジェクトを分析する必要があります。 .NET アップグレード アシスタントを使用してプロジェクトに対してコード分析を実行すると、参照できるレポートが生成され、潜在的な移行の阻害要因が特定されます。

プロジェクトを分析してレポートを生成するには、ソリューション エクスプローラーでソリューション ファイルを右クリックし、アップグレードを選択します。 分析の実行の詳細については、「 .NET Upgrade Assistant を使用してプロジェクトを分析する」を参照してください。

依存関係を移行する

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

ヒント

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

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

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

    Visual Studio の .NET アップグレード アシスタントの [アップグレード] メニュー項目のスクリーンショット。

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

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

    [.NET アップグレード アシスタント] タブのスクリーンショット。[インプレース プロジェクトのアップグレード] オプションが強調表示されています。

  3. 次に、ターゲット フレームワークを選択します。

    アップグレードするプロジェクトの種類に基づいて、さまざまなオプションが表示されます。 .NET Standard 2.0 は、.NET Framework と .NET の両方で使用できます。 これは、ライブラリがこのプロジェクトで実行するWindows フォームなどのデスクトップ テクノロジに依存しない場合に適しています。

    .NET 9.0 を選択し次へを選択

    .NET アップグレード アシスタントのスクリーンショット。ターゲット フレームワークプロンプトが開き、[次へ] ボタンと共に .NET 8 が強調表示されます。

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

    .NET アップグレード アシスタントのスクリーンショット。[コンポーネントの選択] ページが開き、[アップグレードの選択] ボタンが強調表示されています。

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

    .NET アップグレード アシスタントの [アップグレード結果] タブのスクリーンショット。プロジェクトから移行された項目が表示されています。

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

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

Visual Basic プロジェクトの注意事項

現在、.NET アップグレード アシスタントは、.NET Framework 上の Visual Basic テンプレートによって作成された設定ファイルで System.Configuration の使用を認識しません。 また、MyMy.Computerなど、.NET Framework プロジェクトで使用されるMy.User拡張機能の使用も考慮されません。 これらの拡張機能は .NET で削除されました。 この 2 つの問題のため、.NET アップグレード アシスタントを使用して移行した後、Visual Basic ライブラリはコンパイルされません。

この問題を解決するには、プロジェクトが Windows を対象とし、Windows フォームを参照する必要があります。

  1. 移行が完了したら、ソリューション エクスプローラー ウィンドウで MatchingGame.Logic プロジェクトをダブルクリックします。
  2. <Project>/<PropertyGroup> 要素を見つけます。
  3. XML エディターで、 <TargetFramework> の値を net9.0 から net9.0-windows に変更します。
  4. <UseWindowsForms>true</UseWindowsForms>の後の行に<TargetFramework>を追加します。

プロジェクト設定は次のスニペットのようになります。

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net9.0-windows</TargetFramework>
    <UseWindowsForms>true</UseWindowsForms>
    <OutputType>Library</OutputType>
    <MyType>Windows</MyType>

    ... other settings removed for brevity ...

メイン プロジェクトを移行する

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

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

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

.NET アップグレード アシスタントの [アップグレード結果] タブのスクリーンショット。結果項目の一部に警告記号が表示されています。

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

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

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

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

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

Windows フォーム Matching Game Sample プロジェクトが .NET 9 にアップグレードされました。

アップグレード後のエクスペリエンス

.NET Framework から .NET にアプリを移植する場合は、.NET Framework から .NET にアップグレードした後に Modernize を確認してください 記事。