.NET 6移行メモ

.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では次のような例外が発生する。

ArgumentException: ‘shift_jis’ is not a supported encoding name.

対策

シフト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)


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です