.NET 11 の破壊的変更

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

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

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

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

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

注

この記事は作業中です。 .NET 11 の破壊的変更の完全な一覧ではありません。

ASP.NET Core

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

Containers

Title 変更の種類
dotnet テストには、コンテナー内の書き込み可能な VSTest 成果物の基本ディレクトリが必要です 動作の変更

コア .NET ライブラリ

Title 変更の種類
スタック トレースのサポートが無効になっている場合の Assembly.GetCallingAssembly の動作が変更される 動作の変更
CborReader と CborWriter では、既定の最大入れ子深度が適用されます 動作の変更
複合特殊値の結果が C23 Annex G に従うようになった 動作の変更
ZIP アーカイブ エントリを読み取るときに CRC32 検証が追加されました 動作の変更
DateOnly と TimeOnly の TryParse メソッドが無効な入力に対して例外をスローする 動作の変更
Decimal および BigInteger から浮動小数点への変換は正しく丸められます 動作の変更
DeflateStream と GZipStream は空のペイロードに対してヘッダーとフッターを書き込む 動作の変更
Environment.GetCommandLineArgs()[0] は apphost 呼び出し名を保持します 動作の変更
Environment.TickCount がWindowsタイムアウト動作と一致するようにした 動作の変更
生成された WMI コレクションと列挙子ラッパーが IDisposable を実装する ソース/行動の変化
Math.Round と MathF.Round は正しく丸められた結果を返します 動作の変更
Unix では、名前付きミューテックスは既定でユーザー スコープに設定されます 動作の変更
PipeOptions.CurrentUserOnly を使用した NamedPipeServerStream によって Unix ソケット ファイルのアクセス許可が強化される 動作の変更
Nullable.GetUnderlyingType はカスタム Type サブクラスに対して例外をスローする 動作の変更
PackagePart.GetStream() は、ReadWrite パッケージ内の圧縮された部分に対してシークできないストリームを返します 動作の変更
既定以外の診断 ID を使用した API の廃止 (.NET 11) ソースに互換性がありません
SafeFileHandle.IsAsync と FileStream.IsAsync は Unix 上の非ブロッキング状態を正確に反映します 動作の変更
TAR 読み取り API は、読み取り時にヘッダー チェックサムを確認します 動作の変更
TarWriter は、ハードリンクされたファイルに HardLink エントリを使用します 動作の変更
Tensor 操作は、同等の形状と空のテンソルを揃えます 動作の変更
テンソル操作は、サポートされていないストレージレイアウトを受け付けません 動作の変更
ZipArchive.CreateAsync が ZIP アーカイブ エントリを一括読み込みする 動作の変更

暗号

Title 変更の種類
API の廃止 ソースに互換性がありません
Windows 上の Composite ML-DSA はネイティブ実装を使用します 動作の変更
macOS から DSA が削除されました 動作の変更
Windows 上の HKDF は CNG 実装を使用します 動作の変更
Linux AIA 証明書のフェッチは、チェーン ビルドごとに 2 つのフェッチに制限されます 動作の変更

Deployment

Title 変更の種類
.runtimeconfig.dev.json 内の configProperties は .runtimeconfig.json をオーバーライドします 動作の変更

拡張機能

Title 変更の種類
ChangeToken.OnChange 非同期オーバーロードは、既存のタスクを返すコールバックを再バインドします 動作の変更
依存性の注入スコープの破棄によって例外が集計される 動作の変更
チェーン構成の空の文字列は、以前のプロバイダーの値をオーバーライドします 動作の変更
無視された読み込みエラーの後に FileConfigurationProvider は再読み込みトークンを発行しない 動作の変更
FileConfigurationSource.OnLoadException コールバックが IO エラーに対して呼び出される 動作の変更
BackgroundService が失敗したときに、IHost.RunAsync と IHost.StopAsync は例外をスローする 動作の変更
オプション検証ジェネレーターは、Validate の明示的な実装に対して SYSLIB1205 を報告します ソースに互換性がありません
PhysicalFilesWatcher がルートパスと FileSystemWatcher パスを検証する 動作の変更
共有フレームワークに含まれるいくつかのMicrosoft.Extensionsパッケージ 動作の変更

Globalization

Title 変更の種類
和暦の最小サポート日を修正しました 動作の変更

相互運用機能

Title 変更の種類
ネイティブ AOT が blittable 以外の UnmanagedCallersOnly シグネチャを拒否する 動作の変更
NativeAOT では、Unix 上のネイティブ ライブラリ出力に lib プレフィックスを使用します 動作の変更

JIT コンパイラ

Title 変更の種類
浮動小数点から小さい整数型への変換が飽和している 動作の変更
最小ハードウェア要件が更新されました 動作の変更

ネットワーク

Title 変更の種類
HttpClient の高カーディナリティ メトリックは監視可能なカウンターを使用します 動作の変更
SslStream サーバー側の AIA 証明書のダウンロードが既定で無効になっている 動作の変更

.NET MAUI

Title 変更の種類
Android x86 はサポートされていません バイナリ非互換/動作の変化
モバイルでのコード生成が Mono から CoreCLR に変更 ソースの非互換または挙動の変更
.NET モバイル アプリでは、Mono ランタイムが CoreCLR に置き換えられます バイナリ/ソースの互換性なし/動作の変更
CoreCLR トレース イベントが Mono トレース イベントを置き換える バイナリ/ソースの互換性なし/動作の変更
モバイル プラットフォームでのクラッシュ レポート動作の変更 動作の変更
に変更されたモバイル プラットフォーム上のインターフェイスのデバッグ ICorDebug バイナリ/ソースの互換性なし/動作の変更
Android API の最小レベルが 24 に引き上げられた 動作の変更
モバイル プラットフォームでサポートされなくなった Mono 埋め込み API バイナリ/ソースの互換性なし/動作の変更
Mono プロジェクトのプロパティでモバイル アプリが構成されなくなりました ソースの非互換または挙動の変更
Mono ランタイム設定でモバイル アプリが構成されなくなりました 動作/ソースに互換性がありません
Apple ターゲットでは UnwindNativeCode はサポートされていません ソースの非互換または挙動の変更

SDK と MSBuild

Title 変更の種類
dnx スクリプトは global.json の SDK 選択をバイパスする 動作の変更
ネイティブ AOT 発行で完全なビルドがスキップされました 動作の変更
mono 起動ターゲットが .NET Framework アプリ用に設定されていない 動作の変更
NativeAOT CLI コマンド処理が既定で有効になっている 動作の変更
非推奨の MonoAndroid フレームワーク資産を使用するパッケージに対して NU1703 警告が表示される ソースに互換性がありません
Linux で NuGet locks ディレクトリが移動 動作の変更
NuGet pack は、使用できない文字を含むパッケージ ID に対して警告します 動作の変更
復元でグローバル パッケージ フォルダーの上位バージョンが検索されない ソースに互換性がありません
SDK ローカル コンテナー ランタイムの選択でプラットフォームネイティブ ツールが優先される 動作の変更
テンプレート エンジン パッケージで netstandard2.0 がサポートされなくなりました バイナリ/ソースに互換性がありません
テンプレート パッケージのインストールによって NuGet 署名が検証される 動作の変更
VSTest によって Newtonsoft.Json への依存関係が削除される バイナリ/ソースに互換性がありません