Environment.OSVersion で正しいオペレーティング システム バージョンが返される
Environment.OSVersion で、アプリケーションの互換性のために選択される OS などではなく、オペレーティング システム (OS) の実際のバージョンが返されます。
変更の説明
以前のバージョンの .NET では、アプリケーションが Windows 互換モードで実行されている場合、Environment.OSVersion によって、正しくない可能性がある OS バージョンが返されます。 詳細については、GetVersionExA 関数の解説に関する記述を参照してください。 macOS では、基になる Darwin カーネルのバージョンが Environment.OSVersion によって返されます。
.NET 5 以降では、Windows と macOS のオペレーティング システムの実際のバージョンが Environment.OSVersion によって返されます。
次の表に、動作の違いを示します。
以前の .NET バージョン | .NET 5+ | |
---|---|---|
Windows | 6.2.9200.0 | 10.0.19042.0 |
macOS | 19.6.0.0 | 10.15.7 |
変更理由
このプロパティのユーザーは、オペレーティング システムの実際のバージョンが返されることを期待しています。 ほとんどの .NET アプリにより、アプリケーション マニフェストでサポートされているバージョンが指定されないため、dotnet ホストから既定でサポートされているバージョンが取得されます。 その結果、実行されているアプリでは互換性 shim はほとんど意味がなくなります。 Windows で新しいバージョンがリリースされており、古い dotnet ホストがまだ使用されている場合は、これらのアプリの OS バージョンが正しくない可能性があります。 実際のバージョンを返すことが、この API に対する開発者の期待により沿うことになります。
.NET 5 での OperatingSystem.IsWindowsVersionAtLeast、OperatingSystem.IsMacOSVersionAtLeast、および System.Runtime.Versioning.SupportedOSPlatformAttribute の導入により、Windows および macOS で Environment.OSVersion が整合するように変更されました。
導入されたバージョン
5.0
推奨アクション
Environment.OSVersion を使用するコードを確認してテストし、確実に期待どおりに動作するようにします。
影響を受ける API
.NET
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示