.net framework 4.x / WPF アプリケーションを.NET6へ移行した際のメモ
アップグレードアシスタントで.NET 6へ移行
.NET Upgrade Assistant や .NET Upgrade Assistant – 概要 を参考に既存のプロジェクトを.NETへ移行する。
シンプルなプロジェクトはこれで問題なく.NETへ移行できる。ところがクラスライブラリ(たまたまかも知れないが)を変換したところ、.NET Core 2.0 へ変換されてしまった。
ターゲットフレームワークを.NET 6.0へ変更しようとしても、そもそもリストに表示されない。(.NET Core 2.0しか選べない)
対策
プロジェクトファイル(.csproj)をエディタで開いて直接書き換える。冗談みたいだが、これで変更できた。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<OutputType>Library</OutputType>
シフトJISファイル
.NET 6では次のような例外が発生する。
対策
シフトJISのファイルを扱う前にEncoding.RegisterProvider()を呼べばOK
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
using (StreamReader reader = new StreamReader(filePath, Encoding.GetEncoding("shift_jis")))
{
...
}
動作環境
以下の環境で動作を確認しています。
Visual Studio Professional 2022, 17.4.3
Windows11 Pro(64bit, 22H2)