アプリを .NET 10 に移行する場合、ここに一覧表示されている破壊的変更が影響する可能性があります。 変更は、ASP.NET Core や Windows フォームなどのテクノロジ領域別にグループ化されています。
この記事では、各破壊的変更を "バイナリ非互換"、"ソース非互換"、"動作変更" として分類しています。
バイナリ非互換 - 新しいランタイムまたはコンポーネントに対して実行すると、既存のバイナリで、読み込みまたは実行の失敗など動作の破壊的変更が発生する場合があり、その場合は再コンパイルが必要になります。
ソース非互換 - 新しい SDK またはコンポーネントを使用して再コンパイルするとき、または新しいランタイムをターゲットにした場合、既存のソース コードでコンパイルを正常に行うためにソースの変更が必要になる場合があります。
動作の変更 - 実行時に既存のコードとバイナリの動作が異なる場合があります。 新しい動作が望ましくない場合は、既存のコードを更新して再コンパイルする必要があります。
注
この記事は作業中です。 これは、.NET 10 の破壊的変更の完全なリストではありません。
ASP.NET Core
| Title | 変更の種類 |
|---|---|
| 既知の API エンドポイントで無効になっている Cookie ログイン リダイレクト | 動作の変更 |
| WithOpenApi 拡張メソッドの廃止 | ソースに互換性がありません |
| TryHandleAsync が true を返すと、例外診断が抑制される | 動作の変更 |
| IActionContextAccessor と ActionContextAccessor は廃止されました | ソースの非互換または挙動の変更 |
| IncludeOpenAPIAnalyzers プロパティと MVC API アナライザーは非推奨です | ソースに互換性がありません |
| IPNetwork と ForwardedHeadersOptions.KnownNetworks は廃止されました | ソースに互換性がありません |
| Microsoft.Extensions.ApiDescription.Client パッケージの非推奨 | ソースに互換性がありません |
| Razor ランタイムコンパイルは廃止されました | ソースに互換性がありません |
| WebHostBuilder、IWebHost、および WebHost は廃止されています | ソースに互換性がありません |
Containers
| Title | 変更の種類 |
|---|---|
| 既定の .NET イメージで Ubuntu を使用する | 動作の変更 |
Core .NET ライブラリ
| Title | 変更の種類 |
|---|---|
| ActivitySource.CreateActivity と ActivitySource.StartActivity の動作変更 | 動作の変更 |
| Arm64 SVE のフォールトされないロードにはマスクが必要 | バイナリ/ソースに互換性がありません |
| BufferedStream.WriteByte が暗黙的フラッシュを実行しなくなりました | 動作の変更 |
| スパンパラメーターを使用した C# 14 のオーバーロード解決 | 動作の変更 |
| 一般数学における一貫したシフト動作 | 動作の変更 |
| W3C 標準に更新された既定のトレース コンテキスト 伝達子 | 動作の変更 |
| DriveInfo.DriveFormat は Linux ファイルシステムの種類を返します | 動作の変更 |
| DefaultValueAttribute ctor から削除された DynamicallyAccessedMembers 注釈 | バイナリ/ソースに互換性がありません |
| InlineArray で許可されていない明示的な構造体サイズ | バイナリ非互換 |
| FilePatternMatch.Stem が null 非許容に変更されました | ソースの非互換または挙動の変更 |
| GnuTarEntry と PaxTarEntry に既定では atime と ctime が含まれなくなりました | 動作の変更 |
| LDAP DirectoryControl の解析がより厳格に | 動作の変更 |
| MacCatalyst バージョンの正規化 | 動作の変更 |
| .NET ランタイムで既定の終了シグナル ハンドラーが提供されなくなりました | 動作の変更 |
| コア ライブラリ に含まれる System.Linq.AsyncEnumerable | ソースに互換性がありません |
| Type.MakeGenericSignatureType 引数の検証 | 動作の変更 |
暗号
| Title | 変更の種類 |
|---|---|
| CompositeMLDsa が draft-08 に更新されました | 動作の変更 |
| CoseSigner.Key は null にすることができます | 動作/ソースの互換性のない変更 |
| MLDsa および SlhDsa 'SecretKey' メンバーの名前が変更されました | ソースに互換性がありません |
| openSSL 暗号化プリミティブは macOS ではサポートされていません | 動作の変更 |
| Unix で必要な OpenSSL 1.1.1 以降 | 動作の変更 |
| X500DistinguishedName の検証がより厳密に | 動作の変更 |
| X509Certificate および PublicKey のキー パラメーターが null になることがある | 動作/ソースの互換性のない変更 |
| 環境変数の名前が DOTNET_OPENSSL_VERSION_OVERRIDE に変更されました | 動作の変更 |
Entity Framework Core
Extensions
Globalization
| Title | 変更の種類 |
|---|---|
| 環境変数の名前が DOTNET_ICU_VERSION_OVERRIDE に変更 | 動作の変更 |
ツールをインストールする
| Title | 変更の種類 |
|---|---|
| dotnet.acquire API for VS Code が常に最新のダウンロードを行う必要がなくなりました | 動作の変更 |
Interop
| Title | 変更の種類 |
|---|---|
| IDispatchEx COM オブジェクトを IReflect にキャストできない | 動作の変更 |
| 単一ファイル アプリで実行可能ディレクトリ内のネイティブ ライブラリが検索されなくなりました | 動作の変更 |
| DllImportSearchPath.AssemblyDirectory を指定すると、アセンブリ ディレクトリのみが検索されます | 動作の変更 |
ネットワーク
| Title | 変更の種類 |
|---|---|
| PublishTrimmed で HTTP/3 のサポートが既定で無効になっている | ソースに互換性がありません |
| ブラウザーの HTTP クライアントで既定で有効になっているストリーミング HTTP 応答 | 動作の変更 |
Uri 長さの制限が削除されました |
動作の変更 |
リフレクション
| Title | 変更の種類 | 導入されたバージョン |
|---|---|---|
| InvokeMember/FindMembers/DeclaredMembers の制限付き注釈 | 動作/ソースに互換性がありません |
SDK と MSBuild
シリアル化
| Title | 変更の種類 |
|---|---|
| System.Text.Json はプロパティ名の競合をチェックします | 動作の変更 |
| XmlSerializer が ObsoleteAttribute でマークされたプロパティを無視しなくなりました | 動作の変更 |
Windows フォーム
| Title | 変更の種類 |
|---|---|
| API の廃止 | ソースに互換性がありません |
| WPF と WinForms の両方を参照するアプリケーション 、MenuItem 型と ContextMenu 型を明確にする必要 | ソースに互換性がありません |
| HtmlElement.InsertAdjacentElement でパラメーターの名前を変更 | ソースに互換性がありません |
| TreeView チェックボックスの画像の切り捨て | 動作の変更 |
| StatusStrip では、既定で System RenderMode が使用 | 動作の変更 |
| System.Drawing OutOfMemoryException が ExternalException に変更されました | 動作の変更 |
Windows Presentation Foundation (WPF)
| Title | 変更の種類 |
|---|---|
| 空の ColumnDefinitions と RowDefinition は許可されていません | ソースに互換性がありません |
| DynamicResource を正しく使用すると、アプリケーションがクラッシュする | ソースの非互換または挙動の変更 |
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET