アプリを .NET 10 に移行する場合、ここに一覧表示されている破壊的変更が影響する可能性があります。 変更は、ASP.NET Core や Windows フォームなどのテクノロジ領域別にグループ化されています。
この記事では、各破壊的変更を "バイナリ非互換"、"ソース非互換"、"動作変更" として分類しています。
バイナリに互換性がない - 新しいランタイムまたはコンポーネントに対して実行すると、既存のバイナリで、読み込みまたは実行の失敗などの動作に重大な変更が発生する可能性があり、その場合は再コンパイルが必要になります。
ソースに互換性がない - 新しい SDK またはコンポーネントを使用して再コンパイルするとき、または新しいランタイムをターゲットにした場合、既存のソース コードでソースの変更が正常にコンパイルされる必要がある場合があります。
動作の変更 - 実行時に既存のコードとバイナリの動作が異なる場合があります。 新しい動作が望ましくない場合は、既存のコードを更新して再コンパイルする必要があります。
注
この記事は作業中です。 これは、.NET 10 の破壊的変更の完全なリストではありません。
ASP.NET Core
ASP.NET Core 10 の破壊的変更を参照してください。
Containers
| Title | 変更の種類 |
|---|---|
| 既定の.NET イメージは Ubuntu を使用します | 動作の変更 |
| dotnet テストには、コンテナー内の書き込み可能な VSTest 成果物の基本ディレクトリが必要です | 動作の変更 |
Core .NET ライブラリ
| Title | 変更の種類 |
|---|---|
| API の廃止 | ソースに互換性がありません |
| 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 バージョンの正規化 | 動作の変更 |
| Unix では、名前付きミューテックスは既定でユーザー スコープに設定されます | 動作の変更 |
| .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
EF Core 10 の破壊的変更を参照してください。
Extensions
Globalization
| Title | 変更の種類 |
|---|---|
| 環境変数の名前が DOTNET_ICU_VERSION_OVERRIDE に変更されました | 動作の変更 |
ツールをインストールする
| Title | 変更の種類 |
|---|---|
| VS Code 用の dotnet.acquire API で、常に最新がダウンロードされるわけではなくなりました | 動作の変更 |
Interop
| Title | 変更の種類 |
|---|---|
| IDispatchEx COM オブジェクトを IReflect にキャストできない | 動作の変更 |
| 単一ファイル アプリで実行可能ディレクトリ内のネイティブ ライブラリが検索されなくなりました | 動作の変更 |
| DllImportSearchPath.AssemblyDirectory を指定すると、アセンブリ ディレクトリのみが検索されます | 動作の変更 |
ネットワーク
| Title | 変更の種類 |
|---|---|
| PublishTrimmed で HTTP/3 のサポートが既定で無効になっている | ソースに互換性がありません |
| MailAddress では、連続するドットの検証を強制します | 動作の変更 |
| ブラウザーの HTTP クライアントでは、ストリーミング HTTP 応答が既定で有効 | 動作の変更 |
Uri 長さの制限が撤廃されました |
動作の変更 |
リフレクション
| Title | 変更の種類 | 導入されたバージョン |
|---|---|---|
| InvokeMember/FindMembers/DeclaredMembers のより制限された注釈 | 動作/ソースに互換性がありません | |
| Type.MakeGenericSignatureType 引数の検証 | 動作の変更 |
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 と RowDefinitions は許可されていません | ソースに互換性がありません |
| DynamicResource を誤って使用すると、アプリケーションがクラッシュする | ソースの非互換または挙動の変更 |
.NET