アプリを .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 ライブラリ
暗号
| タイトル | 変更の種類 | 導入されたバージョン |
|---|---|---|
| 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 |
関連項目
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET