.NET 9 での破壊的変更

アプリを .NET 9 に移行する場合、ここに一覧表示されている破壊的変更が影響する可能性があります。 変更は、ASP.NET Core や Windows フォームなどのテクノロジ領域別にグループ化されています。

この記事では、各破壊的変更を "バイナリ非互換"、"ソース非互換"、"動作変更" として分類しています。

  • バイナリに互換性がない - 新しいランタイムまたはコンポーネントに対して実行すると、既存のバイナリで、読み込みまたは実行の失敗などの動作に重大な変更が発生する可能性があり、その場合は再コンパイルが必要になります。

  • ソースに互換性がない - 新しい SDK またはコンポーネントを使用して再コンパイルするとき、または新しいランタイムをターゲットにした場合、既存のソース コードでソースの変更が正常にコンパイルされる必要がある場合があります。

  • 動作の変更 - 実行時に既存のコードとバイナリの動作が異なる場合があります。 新しい動作が望ましくない場合は、既存のコードを更新して再コンパイルする必要があります。

ASP.NET Core

ASP.NET Core 9 の破壊的変更を参照してください。

Containers

タイトル 変更の種類 導入されたバージョン
コンテナー イメージで zlib がインストールされなくなりました 動作の変更 プレビュー 7
dotnet テストには、コンテナー内の書き込み可能な VSTest 成果物の基本ディレクトリが必要です 動作の変更 9.0.124/9.0.321
.NET Monitor のイメージがバージョン専用タグに簡略化 動作の変更 プレビュー 5

Core .NET ライブラリ

タイトル 変更の種類 導入されたバージョン
CompressionLevel を使用して ZipArchiveEntry を追加すると、ZIP セントラル ディレクトリ ヘッダーの汎用ビット フラグが設定されます 動作の変更 プレビュー 5
非オープン ジェネリックに対する変更された UnsafeAccessor のサポート 動作の変更 プレビュー 6
カスタム診断 ID を使用した API の廃止 ソースに互換性がありません (複数)
StringValues の暗黙的な演算子に影響するあいまいなオーバーロード解決 ソースに互換性がありません GA
BigInteger の最大長 動作の変更 プレビュー 6
BinaryReader.ReadString() は、形式が正しくないシーケンスに対して "\uFFFD" を返します 動作の変更 プレビュー 7
C# オーバーロードの解決では、スパン型のオーバーロードが params 優先されます ソースに互換性がありません
System.Void の配列の型を作成できません 動作の変更 プレビュー 1
InlineArrayAttribute でマークされた型では、既定の Equals() と GetHashCode() で例外がスローされます 動作の変更 プレビュー 6
EnumConverter は、登録済みの型が列挙型であることを検証します 動作の変更 プレビュー 7
FromKeyedServicesAttribute でキー指定されていないパラメーターが挿入されなくなりました 動作の変更 RC 1
IncrementingPollingCounter の初期コールバックは非同期です 動作の変更 RC 1
インライン配列構造体のサイズ制限が適用される 動作の変更 プレビュー 1
InMemoryDirectoryInfo はファイルに rootDir を先頭付加する 動作の変更 プレビュー 1
Unix では、名前付きミューテックスは既定でユーザー スコープに設定されます 動作の変更 9.0.21
整数を受け取る新しい TimeSpan.From*() オーバーロード ソースに互換性がありません プレビュー 3
一部の OOB パッケージの新しいバージョン ソースに互換性がありません プレビュー 5
RuntimeHelpers.GetSubArray が異なる型を返す 動作の変更 プレビュー 1
String.Trim(params ReadOnlySpan<char>) オーバーロードが削除されました ソースとバイナリに互換性がない GA
空の環境変数のサポート 動作の変更 プレビュー 6
ZipArchiveEntry の名前とコメントは UTF8 フラグを尊重します 動作の変更 RC 1

暗号

タイトル 変更の種類 導入されたバージョン
System.Security.Cryptography.Pkcs netstandard2.0 から削除された API ソースに互換性がありません GA
SafeEvpPKeyHandle.DuplicateHandle はハンドルの参照カウントを増やします 動作の変更 プレビュー 7
一部の X509Certificate2 および X509Certificate コンストラクターは廃止されています ソースに互換性がありません プレビュー 7
Windows秘密キーの有効期間が簡略化されました 動作の変更 プレビュー 7

配置

タイトル 変更の種類 導入されたバージョン
非推奨のデスクトップ Windows/macOS/Linux MonoVM ランタイム パッケージ ソースに互換性がありません プレビュー 7
アプリのランタイム構成設定で環境変数が優先される 動作の変更 GA

Entity Framework Core

EF Core 9 の破壊的変更を参照してください。

相互運用機能

タイトル 変更の種類 導入されたバージョン
既定でサポートされている CET バイナリ非互換 プレビュー 6

JIT コンパイラ

タイトル 変更の種類 導入されたバージョン
浮動小数点から整数への変換が飽和している 動作の変更 プレビュー 4
一部の SVE API が削除されました ソースに互換性がありません RC 2

ネットワーク

タイトル 変更の種類 導入されたバージョン
HttpClient メトリックを server.port 無条件にレポートする 動作の変更 プレビュー 7
HttpClientFactory のログでは、既定でヘッダー値がマスクされます 動作の変更 RC 1
HttpClientFactory がプライマリ ハンドラーとして SocketsHttpHandler を使用する 動作の変更 プレビュー 6
HttpListenerRequest.UserAgent は null 許容です ソースに互換性がありません プレビュー 1
HttpClient EventSource イベントでの URI クエリの秘匿化 動作の変更 プレビュー 7
IHttpClientFactory ログでの URI クエリのマスキング 動作の変更 プレビュー 7

SDK と MSBuild

タイトル 変更の種類 導入されたバージョン
dotnet sln add 無効なファイル名を許可しない 動作の変更 9.0.2xx
dotnet watch古いフレームワークのホット リロードと互換性がありません 動作の変更 RC 1
dotnet workload コマンド出力の変更 動作の変更 プレビュー 1
installer リポジトリのバージョンが文書化されなくなりました 動作の変更 プレビュー 5
MSBuild カスタム カルチャ リソースの処理 動作の変更 9.0.200/9.0.300
.NET Framework をターゲットにするときに使用される新しい既定の RID ソースに互換性がありません GA
ターミナル ロガーは既定です 動作の変更 プレビュー 1
テンプレート パッケージのインストールによって NuGet 署名が検証される 動作の変更 9.0.1xx/9.0.3xx サービス更新
.NET 9 SDK のバージョン要件 ソースに互換性がありません GA
.NET Standard 1.x ターゲットに対して警告が出力される ソースに互換性がありません プレビュー 6
.NET 7 ターゲットに対して出力された警告 ソースに互換性がありません GA

シリアル化

タイトル 変更の種類 導入されたバージョン
BinaryFormatter は常にスローします 動作の変更 プレビュー 6
null 許容の JsonDocument プロパティは JsonValueKind.Null に逆シリアル化される 動作の変更 プレビュー 1
System.Text.Json メタデータ リーダーでメタデータ プロパティ名のエスケープが解除されるようになりました 動作の変更 GA

Windows フォーム

タイトル 変更の種類 導入されたバージョン
BindingSource.SortDescriptions が null を返さない 動作の変更 プレビュー 1
null 許容注釈の変更 ソースに互換性がありません プレビュー 1
ComponentDesigner.Initialize が ArgumentNullException をスローする 動作の変更 プレビュー 1
開始行インデックスの DataGridViewRowAccessibleObject.Name 動作の変更 プレビュー 1
IMsoComponent のサポートはオプトインです 動作の変更 プレビュー 2
新しいセキュリティ アナライザー ソースに互換性がありません RC 1
DataGridView が null の場合は例外なし 動作の変更 プレビュー 1
PictureBox が HttpClient の例外を発生させる 動作の変更 プレビュー 6
StatusStrip で別の既定のレンダラーが使用される 動作の変更 GA

WPF

タイトル 変更の種類 導入されたバージョン
GetXmlNamespaceMaps 型の変更 動作の変更、またはソースに互換性がない プレビュー 3

関連項目