アプリを .NET 8 に移行する場合、ここに一覧表示されている破壊的変更が影響する可能性があります。 変更は、ASP.NET Core や Windows フォームなどのテクノロジ領域別にグループ化されています。
この記事では、各破壊的変更を "バイナリ非互換"、"ソース非互換"、"動作変更" として分類しています。
バイナリに互換性がない - 新しいランタイムまたはコンポーネントに対して実行すると、既存のバイナリで、読み込みまたは実行の失敗などの動作に重大な変更が発生する可能性があり、その場合は再コンパイルが必要になります。
ソースに互換性がない - 新しい SDK またはコンポーネントを使用して再コンパイルするとき、または新しいランタイムをターゲットにした場合、既存のソース コードでソースの変更が正常にコンパイルされる必要がある場合があります。
動作の変更 - 実行時に既存のコードとバイナリの動作が異なる場合があります。 新しい動作が望ましくない場合は、既存のコードを更新して再コンパイルする必要があります。
ASP.NET Core
ASP.NET Core 8 の破壊的変更を参照してください。
Containers
| タイトル | 変更の種類 |
|---|---|
| Alpine イメージから削除された 'ca-certificates' パッケージ | バイナリ非互換 |
| Debian 12 にアップグレードされた Debian コンテナー イメージ | バイナリ非互換/動作の変化 |
| 既定の ASP.NET Core ポートが 8080 に変更されました | 動作の変更 |
| dotnet テストには、コンテナー内の書き込み可能な VSTest 成果物の基本ディレクトリが必要です | 動作の変更 |
| Alpine イメージと Debian イメージから削除された Kerberos パッケージ | バイナリ非互換 |
| Alpine イメージから削除された 'libintl' パッケージ | 動作の変更 |
| マルチプラットフォーム コンテナー タグは Linux 専用です | 動作の変更 |
| Linux イメージの新しい 'app' ユーザー | 動作の変更 |
Core .NET ライブラリ
暗号化
| タイトル | 変更の種類 | 導入時期 |
|---|---|---|
| macOS での AesGcm 認証タグのサイズ | 動作の変更 | プレビュー 1 |
| RSA.EncryptValue と RSA.DecryptValue は廃止されました | ソースに互換性がありません | プレビュー 1 |
配置
| タイトル | 変更の種類 |
|---|---|
| ホストによって RID 固有のアセットが決定される | バイナリ非互換/動作の変化 |
| .NET モニターには、distroless イメージのみが含まれています | 動作の変更 |
| openSUSE および SLES の.NET パッケージは、OpenSSL 3.x に依存します | 動作の変更 |
| StripSymbols の既定値は true です | 動作の変更 |
Entity Framework Core
EF Core 8 の破壊的変更を参照してください。
拡張機能
グローバリゼーション
| タイトル | 変更の種類 |
|---|---|
| 日付と時刻のコンバーターがカルチャ引数を考慮する | 動作の変更 |
| TwoDigitYearMax の既定値は 2049 | 動作の変更 |
相互運用機能
| タイトル | 変更の種類 |
|---|---|
| CreateObjectFlags.Unwrap only unwraps on target instance | 動作の変更 |
| カスタム マーシャラーには追加のメンバーが必要 | ソースに互換性がありません |
| IDispatchImplAttribute API が削除されました | バイナリ非互換 |
| JSFunctionBinding の暗黙的なパブリック既定コンストラクターの削除 | バイナリ非互換 |
| SafeHandle 型にはパブリック コンストラクターが必要です | ソースに互換性がありません |
Linux ネイティブ ライブラリの解決では、netcoredeps は使用されなくなりました |
動作の変更 |
ネットワーク
| タイトル | 変更の種類 |
|---|---|
| SendFile がコネクションレス ソケットに対して NotSupportedException をスローする | 動作の変更 |
mailto: URI のユーザー情報を比較する |
動作の変更 |
リフレクション
| タイトル | 変更の種類 |
|---|---|
| IntPtr が関数ポインター型に使用されなくなりました | 動作の変更 |
SDK
| タイトル | 変更の種類 |
|---|---|
| CLI コンソールの出力で UTF-8 が使用される | 動作の変更/ソースとバイナリに互換性がありません |
| 完了後にコンソール エンコードが UTF-8 ではない | 動作の変更/バイナリに互換性がありません |
| コンテナーは既定で 'latest' タグを使用します | 動作の変更 |
| 'dotnet pack' はリリース構成を使用します | 動作の変更、またはソースに互換性がない |
| 'dotnet publish' はリリース構成を使用します | 動作の変更、またはソースに互換性がない |
| -getItem、-getProperty、-getTargetResult の出力の重複 | 動作の変更 |
System.Net.Http の暗黙的な using が追加されなくなりました |
動作の変更、またはソースに互換性がない |
| MSBuild カスタム派生ビルド イベントの非推奨 | 動作の変更 |
| MSBuild はDOTNET_CLI_UI_LANGUAGEを尊重します | 動作の変更 |
| 自己完結型ではないランタイム固有のアプリ | ソースとバイナリに互換性がない |
| --arch オプションは自己完結型を意味しません | 動作の変更 |
| "dotnet restore" によってセキュリティの脆弱性の警告が生成される | 動作の変更 |
| ソースが脆弱性データを提供しない場合、'dotnet list package' によって警告が表示される | 動作の変更 |
| SDK では、より小さい RID グラフが使用されます | 動作の変更、またはソースに互換性がない |
| DebugSymbols を false に設定すると、PDB の生成が無効になります | 動作の変更 |
| .NET SDK に含まれるソース リンク | ソースに互換性がありません |
| テンプレート パッケージのインストールによって NuGet 署名が検証される | 動作の変更 |
| トリミングは、.NET Standard または .NET Framework では使用できません | 動作の変更 |
| .NET ツールの既定では一覧に表示されないパッケージ | 動作の変更 |
| 外部ビルドにインポートされた .user ファイル | 動作の変更 |
| .NET 8 SDK のバージョン要件 | ソースに互換性がありません |
シリアル化
| タイトル | 変更の種類 |
|---|---|
| ほとんどのプロジェクトで BinaryFormatter が無効になっている | 動作の変更 |
| PublishedTrimmed projects ではリフレクション ベースのシリアル化が失敗する | 動作の変更 |
| リフレクション ベースのデシリアライザーはメタデータを先行して解決する | 動作の変更 |
Windows フォーム
関連項目
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET