次の方法で共有


.NET 7 での破壊的変更

アプリを .NET 7 に移行する場合、ここに一覧表示されている破壊的変更が影響する可能性があります。 変更は、ASP.NET Core や Windows フォームなどのテクノロジ領域別にグループ化されています。

この記事では、各破壊的変更を "バイナリ非互換"、"ソース非互換"、"動作変更" として分類しています。

  • バイナリ非互換 - 新しいランタイムまたはコンポーネントに対して実行すると、既存のバイナリで、読み込みまたは実行の失敗など動作の破壊的変更が発生する場合があり、その場合は再コンパイルが必要になります。

  • ソース非互換 - 新しい SDK またはコンポーネントを使用して再コンパイルするとき、または新しいランタイムをターゲットにした場合、既存のソース コードでコンパイルを正常に行うためにソースの変更が必要になる場合があります。

  • 動作の変更 - 実行時に既存のコードとバイナリの動作が異なる場合があります。 新しい動作が望ましくない場合は、既存のコードを更新して再コンパイルする必要があります。

ASP.NET Core

タイトル 変更の種類
API コントローラー アクションが DI からパラメーターを推論しようとする ソースに互換性がありません
ASPNET プレフィックス付き環境変数の優先順位 動作の変更
リモート認証プロバイダーの AuthenticateAsync ソースに互換性がありません
WebAssembly アプリでの認証 バイナリ非互換
既定の認証方式 バイナリ非互換
一部の Microsoft.AspNetCore.Mvc.Core ログ メッセージのイベント ID が変更されました バイナリ非互換
フォールバック ファイル エンドポイント バイナリ非互換
IHubClients と IHubCallerClients でメンバーが隠される ソースに互換性がありません
Kestrel: 既定の HTTPS バインドが削除されました バイナリ非互換
Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv および libuv.dll を削除済み バイナリ/ソースに互換性がありません
Microsoft.Data.SqlClient の 4.0.1 への更新 ソースに互換性がありません
ミドルウェアが null 要求のデリゲートでエンドポイントに従わなくなった バイナリ非互換
モデル バインドでの空の本文に関する MVC の検出の変更 バイナリ非互換
出力キャッシュ API の変更 バイナリ/ソースに互換性がありません
SignalR Hub メソッドが DI からパラメーターを解決しようとする ソースに互換性がありません

Core .NET ライブラリ

タイトル 変更の種類
既定の診断 ID を持つ API の旧型式化 ソースに互換性がありません
既定以外の診断 ID を持つ API の旧型式化 ソースに互換性がありません
アセンブリ名属性にアスタリスクが使用できなくなりました 動作の変更
BinaryFormatter シリアル化 API でコンパイラ エラーが発生する ソースに互換性がありません
BrotliStream では、未定義の CompressionLevel 値が許可されなくなりました バイナリ非互換
Visual Studio の C++/CLI プロジェクト ソースに互換性がありません
リフレクション呼び出し API 例外の変更 バイナリ非互換
回収不可能な AssemblyLoadContext の回収可能アセンブリ バイナリ非互換
DateTime 加算メソッドの精度変更 動作の変更
NaN に対する Equals メソッドの動作の変更 バイナリ非互換
EventSource コールバックの動作 動作の変更
PatternContext<T> のジェネリック型制約 バイナリ/ソースに互換性がありません
レガシ FileStream 戦略が削除されました バイナリ非互換
古いフレームワークのライブラリ サポート バイナリ/ソースに互換性がありません
数値書式指定文字列の最大有効桁数 バイナリ非互換
範囲が修正された正規表現パターン 動作の変更
SerializationFormat.Binary は廃止されました バイナリ/ソースに互換性がありません
System.Drawing.Common 構成スイッチを削除 動作の変更
System.Runtime.CompilerServices.Unsafe NuGet パッケージ 動作の変更
シンボリック リンクの時刻フィールド バイナリ非互換
リンクされたキャッシュ エントリの追跡 バイナリ非互換
BrotliStream の CompressionLevel を検証する バイナリ非互換

構成

タイトル 変更の種類
app.config の system.diagnostics エントリ バイナリ非互換

暗号化

タイトル 変更の種類
EnvelopedCms の暗号化解除で折り返し解除を二重処理しない バイナリ非互換
動的 X509ChainPolicy 検証時間 バイナリ非互換
X500DistinguishedName によるフレンドリ名の解析 バイナリ非互換

配置

タイトル 変更の種類
すべてのアセンブリを既定でトリミング ソースに互換性がありません
複数レベルの検索の無効化 バイナリ非互換
64 ビット Windows での x86 ホスト パス 動作の変更
TrimmerDefaultAction は非推奨です ソースに互換性がありません

Entity Framework Core

EF Core 7 での破壊的変更

拡張機能

タイトル 変更の種類
構成をディクショナリにバインドすると値が拡張される 動作の変更
Windows Shell によって起動されたアプリの ContentRootPath バイナリ非互換
環境変数のプレフィックス バイナリ非互換

グローバリゼーション

タイトル 変更の種類
グローバリゼーション API では Windows 上の ICU ライブラリが使用される バイナリ非互換

相互運用機能

タイトル 変更の種類
エミュレーション時の RuntimeInformation.OSArchitecture バイナリ非互換

.NET MAUI

タイトル 変更の種類
コンストラクターは、具象型ではなく基本インターフェイスを受け入れます バイナリ非互換
フロー方向ヘルパー メソッドが削除されました バイナリ/ソースに互換性がありません
新しい UpdateBackground パラメーター バイナリ非互換
ScrollToRequest プロパティの名前が変更されました バイナリ/ソースに互換性がありません
一部の Windows API の削除 バイナリ/ソースに互換性がありません

ネットワーク

タイトル 変更の種類
AllowRenegotiation の既定値が false になる バイナリ/ソースに互換性がありません
Linux でのカスタム ping ペイロード バイナリ非互換
Socket.End メソッドが ObjectDisposedException をスローしない バイナリ非互換

SDK と MSBuild

タイトル 変更の種類
発行専用の自動 RuntimeIdentifier バイナリ/ソースに互換性がありません
CLI コンソール出力での UTF-8 の使用 バイナリ/ソースに互換性がありません
完了後にコンソール エンコードが UTF-8 ではなくなる バイナリ非互換
MSBuild の .NET 7 でのカスタム型のシリアル化 バイナリ/ソースに互換性がありません
SDK のサイド バイ サイド インストール バイナリ/ソースに互換性がありません
ルート フォルダー内のツール マニフェスト 動作の変更
.NET 7 SDK のバージョン要件 動作の変更
-a の代わりに --arch をエイリアス --test-adapter-path に切り替える バイナリ/ソースに互換性がありません
-r の代わりに --runtime をエイリアス --results-dir に切り替える バイナリ/ソースに互換性がありません
--output オプションはソリューションレベルのコマンド に対して無効になりました バイナリ/ソースに互換性がありません
SDK は ResolvePackageDependencies を呼び出さなくなりました ソースに互換性がありません

シリアル化

タイトル 変更の種類
DataContractSerializer が -0 を逆シリアル化する際に符号を保持する バイナリ非互換
先頭または末尾に空白文字を含む Version 型の逆シリアル化 バイナリ非互換
JsonSerializerOptions コピー コンストラクターに JsonSerializerContext が含まれる バイナリ非互換
オブジェクト型のポリモーフィックなシリアル化 バイナリ非互換
System.Text.Json ソース ジェネレーターのフォールバック バイナリ非互換

Windows フォーム

タイトル 変更の種類
旧形式と警告 ソースに互換性がありません
一部の API によって ArgumentNullException がスローされる バイナリ非互換

WPF

タイトル 変更の種類
テキスト エディターでのドラッグ アンド ドロップ操作の動作を復元しました 動作の変更

XML と XSLT

タイトル 変更の種類
XmlSecureResolver は廃止されました バイナリ/ソースに互換性がありません

関連項目