目次
.NET Framework から .NET 6 への移行を行うときに便利なツールの一つに .NET Portability Analyzer があります。
このツールは、以下の2つの種類があって、使い方が少し違います。
- Visual Studio のエクステンション
- Visual Studio 上から GUI で、プロジェクトごとに分析できる。
- コンソールアプリ(クリックするとダウンロードされます)
- path を指定してファイルやディレクトリごとに分析できる
公式ドキュメントは以下です。
docs.microsoft.com
なにができるの
移行先のプラットフォーム(今回なら .NET 6) で使用できない(ビルドが通らず代替が必要な) API を特定できます。
どこが便利なの
サポートされていなく手動で代替が必要な箇所を探す時に、ドキュメントを読んでサポートされていない API を手動でリストアップして、ソースコードを自分で解析するというような作業が不要で、メニューからツールを実行するだけで遅くとも数分程度でレポートを作成してくれるので、簡単に移行を実施した時に発生すると想定される作業量の見当をつけることができます。
このツールは移行計画を作成するときにとても便利です。
注意点
2022/02/08 現在、移行先のプラットフォームとして .NET 5 までしか対応していません。
(.NET Framework からの移行という観点では 移行先を .NET 5 に設定して利用しても実害はほとんどありません。)
使い方
Visual Studio の [ツール] -> [オプション] で設定画面が表示されるので、移行先のプラットフォームを(.NET 6 がまだないので、.NET 5)をチェックします。
プロジェクトの右クリックメニューから、[Analyze Project Portability] を実行します。
分析が始まります。
レポートが作成されるので開いてみましょう。
移植性のサマリーの値が 「98.45%」になっているので、移植できない API が含まれていることがわかります。
サポートされていない API が何かを確認するには、「Details」のシートを確認するとわかります。
DataGrid
とそのメンバーが Not supported になっています。
よって、このアプリではDataGrid
を .NET6で利用できる API に変更しなければいけないことがわかります。
このような手順で、サポートされていない API をリストアップすることができます。
リストアップできたら、そのAPIについて調査します。
例えばDataGrid
について docs.microsoft.com でリファレンスを確認すると「代わりに DataGridViewコントロールを使用してください。」と記載されておりますので、DataGrid
をDataGridView
に置き換えればよいことになります。
今回のサンプルコード
.NET Portability Analyzer を利用すると、このような感じでサポートされていない API を簡単にリストアップできます。
なお、今回ツールを実行したプロジェクトのサンプルコードは以下にありますので、試してみたい方は参照してみてください。
github.com
.NET Framework から .NET 6 への移行計画については以下を参照ください。
hiro128.hatenablog.jp
.NET アップグレード アシスタントについては以下を参照ください。
hiro128.hatenablog.jp