アプリを .NET 9 に移行する場合、ここに一覧表示されている破壊的変更が影響する可能性があります。 変更は、ASP.NET Core や Windows フォームなどのテクノロジ領域別にグループ化されています。
この記事では、各破壊的変更を "バイナリ非互換"、"ソース非互換"、"動作変更" として分類しています。
バイナリ非互換 - 新しいランタイムまたはコンポーネントに対して実行すると、既存のバイナリで、読み込みまたは実行の失敗など動作の破壊的変更が発生する場合があり、その場合は再コンパイルが必要になります。
ソース非互換 - 新しい SDK またはコンポーネントを使用して再コンパイルするとき、または新しいランタイムをターゲットにした場合、既存のソース コードでコンパイルを正常に行うためにソースの変更が必要になる場合があります。
動作の変更 - 実行時に既存のコードとバイナリの動作が異なる場合があります。 新しい動作が望ましくない場合は、既存のコードを更新して再コンパイルする必要があります。
ASP.NET Core
Containers
| タイトル | 変更の種類 | 導入されたバージョン |
|---|---|---|
| コンテナー イメージによる zlib のインストールの廃止 | 動作の変更 | プレビュー 7 |
| .NET Monitor イメージがバージョン専用タグに簡略化されました | 動作の変更 | プレビュー 5 |
Core .NET ライブラリ
暗号
| タイトル | 変更の種類 | 導入されたバージョン |
|---|---|---|
| System.Security.Cryptography.Pkcs netstandard2.0 から削除された API | ソースに互換性がありません | GA |
| SafeEvpPKeyHandle.DuplicateHandle によるハンドルの up-ref | 動作の変更 | プレビュー 7 |
| 一部の X509Certificate2 および X509Certificate コンストラクターは廃止予定です | ソースに互換性がありません | プレビュー 7 |
| Windows 秘密キーの有効期間の簡素化 | 動作の変更 | プレビュー 7 |
配置
| タイトル | 変更の種類 | 導入されたバージョン |
|---|---|---|
| 非推奨のデスクトップ Windows/macOS/Linux MonoVM ランタイム パッケージ | ソースに互換性がありません | プレビュー 7 |
Entity Framework Core
相互運用機能
| タイトル | 変更の種類 | 導入されたバージョン |
|---|---|---|
| 既定での CET のサポート | バイナリ非互換 | プレビュー 6 |
JIT コンパイラ
| タイトル | 変更の種類 | 導入されたバージョン |
|---|---|---|
| 浮動小数点から整数への変換が飽和している | 動作の変更 | プレビュー 4 |
| 一部の SVE API が削除されました | ソースに互換性がありません | RC 2 |
ネットワーク
| タイトル | 変更の種類 | 導入されたバージョン |
|---|---|---|
| API の廃止 | ソースに互換性がありません | プレビュー 6 |
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 |
| .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 |
関連項目
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET