次の方法で共有


.NET 10 での破壊的変更

アプリを .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

EF Core 10 の破壊的変更

Extensions

Title 変更の種類
BackgroundService は、すべての ExecuteAsync をタスクとして実行します 動作の変更
AnyKey を使用した GetKeyedService() と GetKeyedServices() の問題を修正する 動作の変更
構成で保持される NULL 値 動作の変更
コンソールログ出力でメッセージが重複しなくなりました 動作の変更
ProviderAliasAttribute が Microsoft.Extensions.Logging.Abstractions アセンブリに移動されました ソースに互換性がありません
トリミング時の安全性が保証されない Microsoft.Extensions.Configuration コードから DynamicallyAccessedMembers 注釈が削除されました バイナリ非互換

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 変更の種類
.NET CLI の --interactive はユーザー シナリオの既定で true になる 動作の変更
dotnet CLI コマンドは、コマンドに関連しないデータを stderr に記録します 動作の変更
.NET ツール パッケージによって RuntimeIdentifier 固有のツール パッケージが作成される 動作の変更
'loose manifests' から 'workload sets' モードへの既定のワークロード構成 動作の変更
コード カバレッジ EnableDynamicNativeInstrumentation の既定値は false です 動作の変更
dnx.ps1 ファイルが .NET SDK に含まれていない ソースに互換性がありません
dotnet new sln 既定値は SLNX ファイル形式 動作の変更
dotnet package list 復元を実行します 動作の変更
dotnet restore 推移的なパッケージを監査する 動作の変更
dotnet tool install --local 既定でマニフェストを作成する 動作の変更
dotnet watch stdout ではなく stderr にログを記録する 動作の変更
project.json でサポートされていません dotnet restore ソースに互換性がありません
SHA-1 フィンガープリントのサポートは非推奨になりました dotnet nuget sign 動作の変更
MSBUILDCUSTOMBUILDEVENTWARNING エスケープ ハッチの削除 動作の変更
MSBuild カスタム カルチャ リソースの処理 動作の変更
NuGet によって削除された直接参照に対して NU1510 が発生する ソースに互換性がありません
ランタイム アセットのない NuGet パッケージは、deps.jsonに含まれません ソースに互換性がありません
バージョンのない PackageReference でエラーが発生する 動作の変更
PrunePackageReference が直接排除可能な参照を民営化する 動作の変更
HTTP 警告が dotnet package list および dotnet package search でエラーとして表示 動作/ソースの互換性のない変更
NUGET_ENABLE_ENHANCED_HTTP_RETRY環境変数が削除されました 動作の変更
NuGet は、無効なパッケージ ID のエラーをログに記録します 動作の変更
ToolCommandName ツール以外のパッケージに対して設定されていない ソースに互換性がありません

シリアル化

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 を正しく使用すると、アプリケーションがクラッシュする ソースの非互換または挙動の変更