.NET Frameworkの互換性
.NET Framework 4以降のバージョンについてはバージョン間で非常に高い後方互換性があるので、基本的には新しいバージョンをインストールしてもアプリケーションはそのまま動作することが期待できます。これは、Windows Updateを通じてクライアント系OSに.NET Frameworkの最新バージョンを提供していることからも窺えます。
そうはいっても、ランタイムやクラスの動作でアプリケーションの動作に影響を与える変更点が存在することもあります。本記事では、これらの変更点について詳しく解説します。
バージョン間で互換性に影響がある変更点
.NET Framework 4以降のバージョンで互換性に影響がある変更点はドキュメントで詳しくまとめられています。
-
アプリケーションをリビルドせずにコンピューターにインストールされている.NET Frameworkのバージョンをアップグレードした場合に影響を受ける変更点がまとめられています。新しいバージョンの.NET Frameworkをインストールした際に確認すべきドキュメントはこちらになります。
-
ターゲットフレームワークのバージョンを変更してリビルドした場合に影響を受ける変更点がまとめられています。アプリケーションのターゲットフレームワークを変更してリビルドする場合は、こちらのドキュメントを確認する必要があります。また、この場合は必然的にランタイムのバージョンも変更されるため、ランタイムの変更も確認する必要があります。
なお、ドキュメントは隣接するバージョン間でまとめられていますので、バージョンが離れている場合は、複数のドキュメントを確認する必要があります。例えば、.NET Framework 4.5から4.8にアップグレードする場合は、4.5から4.6、4.6から4.7、4.7から4.8の各ドキュメントを確認する必要があります。
更新プログラムにおける互換性に影響がある変更点
不具合に依存していた依存していたアプリケーションが不具合の修正に起因して動かなくなるといった場合もありますし、更新プログラム自体に新たな不具合が含まれる可能性もあるため、更新プログラムの適用に際して一切の検証が不要とは言い切れません。しかし、更新プログラムがアプリケーションの互換性に影響を与えることは非常に稀です。基本的には、更新プログラムの適用後もアプリケーションはそのまま動作することが期待できると考えてよいでしょう。
ただし、これまでにリリースされている更新プログラムで互換性に影響がある変更が含まれているものもありました。それらの変更は基本的にセキュリティの強化に関するもので、各更新プログラムのKBに記載されています。しかし変更の履歴がまとめられたページは見当たらず確認がなかなか大変なので、備忘録としてまとめておきます。.NET Frameworkの更新プログラムは累積的にリリースされるため、最新の更新プログラムを適用していれば、これらの変更はすべて含まれている点に注意してください。また、リリース月以降にリリースされているWindowsのバージョンでは、これらの変更はすでに適用されていますので、その点も注意してください。
リリース月 | 変更点 | URL |
---|---|---|
2025年2月 | 古いバージョンのWindowsにもGetTempPath2関数が追加されました。これに伴い、古いバージョンのWindowsでも2024年7月の.NET Frameworkの更新プログラムで変更されたSystem.IO.Path.GetTempPathメソッドの動作になります。 | KB5050762 |
2024年7月 | System.IO.Path.GetTempPathメソッドの動作が変更されました。
| KB5039895 |
2023年7月 | System.Security.Cryptgraphy.X509Certificateクラスの動作が変更されました。
| KB5028851 KB5025823 |
2022年12月 | WPFアプリケーションにおけるXPSドキュメントのレンダリング処理が変更されました。セキュリティの強化のため、テーブル構造、ストーリーボード、ハイパーリンクなどの構造要素を含むXPSファイルが正常に表示されない、あるいは読み込み時にNullReferenceExceptionが発生する可能性があります。 | KB5020880 KB5022083 |
2020年9月 | NTLM認証を要求するサーバーからのClickOnceアプリケーションのインストール動作が変更されました。
| KB4576627 |
2020年7月 | XmlSerializerクラスなどを使用したXMLのデシリアライズ処理の動作が変更されました。
| KB4566516 DataSet と DataTable のセキュリティ ガイダンス |
2019年4月 | 日本の和暦に関する書式パターンの動作が変更されました。
| KB4489192 .NET Framework の新しい日本語時代 (年号) の更新の概要 |