.NET Frameworkから.NET Coreへ(1)
Microsoftが推奨している.NET Frameworkから.NET Coreへの移行のプロセスは以下の通りです。
- 対象となるプロジェクトを.NET Framework 4.7.2以降をターゲットにするよう修正する。
- .NET Portability Analyzerを使用して移行が可能かどうかアセンブリの分析を行う。
- .NET API アナライザーを使用し、.NET Core上でAPIが利用できるかどうかを評価する。
- Windows互換機能パックの利用を検討する。
- Visual Studioの機能を利用して依存関係の記述をpackage.configからPackageReferenceへ変換する。
- プロジェクトファイルの変換を行う。
1.対象となるプロジェクトを.NET Framework 4.7.2以降をターゲットにするよう修正する。
.NET Frameworkと.NET CoreのAPIの違いを評価する場合、移行対象となるプロジェクトをすべて.NET Framework 4.7.2以降のバージョンに再ターゲットします。これによって、後述する各種ツールを使用して利用しているAPIの評価を行うことができるようになります。
2..NET Portability Analyzerを使用してアセンブリの分析を行うことで移行が可能かどうかを検出する。
.NET Portability Analyzerは、Visual Studioの機能拡張のひとつで、プロジェクトを分析し、移行先バージョンのフレームワークへの移植可能性を評価することができるツールです。
.NET Portability Analyzerは、Visual Studio 2017以降で動作します。
上記のリンク、もしくはVisual Studioのメインメニューにある[拡張機能]からインストールすると、メインメニューの[ツール]→[オプション]に[.NET Portability Analyzer]の項目が追加されます。
このオプションで移行対象となるフレームワークを選択したり、評価結果の出力先、ファイル名、フォーマットを指定できたりします。
なお、このオプションはプロジェクトのコンテキストメニューから[Portability Analyzer Settings]を選択する方法でも呼び出せます。
続けて、ソリューションエクスプローラーからプロジェクトを右クリックし、表示されたコンテキストメニューから[Analyze Project Portability]を選択すると分析が開始されます。
分析の実行中は[出力]ウインドウで分析の進捗状況を確認できます。
分析が完了すると[Portability Analysis Results]ウインドウが開き、分析結果のファイルにアクセスできます。
分析結果には、分析対象となったプロジェクト単位の評価結果一覧と、プロジェクトに含まれる型の単位の詳細や移植可能性の情報を確認することができます。
分析結果はオプションの指定によって、Excel、HTML、JSONの形式で出力できます。以下の図はExcelファイルで出力されたサンプルです。Portability Summery(移植可能性の概要)とDetails(詳細)シートが追加されていることが確認できます。