次の方法で共有


.NET 7 での破壊的変更

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

この記事では、各破壊的変更が "バイナリ互換" であるか、"ソース互換" であるかを示します。

  • バイナリ互換 - 既存のバイナリは再コンパイルなしで正常に読み込まれて実行され、実行時の動作は変化しません。
  • ソース互換 - 新しいランタイムを対象にしたり、新しい SDK やコンポーネントを使用したりする場合、ソース コードは変更なしで正常にコンパイルされます。

ASP.NET Core

Title バイナリ互換 ソース互換
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 ライブラリ

Title バイナリ互換 ソース互換
既定の診断 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 を検証する ✔️

構成

Title バイナリ互換 ソース互換
app.config の system.diagnostics エントリ ✔️

暗号化

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

配置

タイトル バイナリ互換 ソース互換
すべてのアセンブリを既定でトリミング ✔️
複数レベルの検索の無効化 ✔️
64 ビット Windows での x86 ホスト パス ✔️ ✔️
TrimmerDefaultAction は非推奨です ✔️

Entity Framework Core

EF Core 7 での破壊的変更

拡張機能

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

グローバリゼーション

Title バイナリ互換 ソース互換
グローバリゼーション API では Windows 上の ICU ライブラリが使用される ✔️

Interop

タイトル バイナリ互換 ソース互換
エミュレーション時の RuntimeInformation.OSArchitecture ✔️

.NET MAUI

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

ネットワーキング

Title バイナリ互換 ソース互換
AllowRenegotiation の既定値が false になる
Linux でのカスタム ping ペイロード ✔️
Socket.End メソッドが ObjectDisposedException をスローしない ✔️

SDK と MSBuild

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

シリアル化

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

Windows フォーム

Title バイナリ互換 ソース互換
旧形式と警告 ✔️
一部の API によって ArgumentNullException がスローされる ✔️

WPF

タイトル バイナリ互換 ソース互換 下位互換性
テキスト エディターでのドラッグ アンド ドロップ操作の動作を復元しました ✔️ ✔️

XML と XSLT

タイトル バイナリ互換 ソース互換
XmlSecureResolver は廃止されました

関連項目