Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Environment.OSVersion retourne la version réelle du système d’exploitation, plutôt que, par exemple, celle sélectionnée pour la compatibilité des applications.
Description de la modification
Dans les versions .NET précédentes, Environment.OSVersion retourne une version du système d’exploitation qui peut être incorrecte lorsqu’une application s’exécute en mode de compatibilité Windows. Pour plus d’informations, consultez les remarques de fonction GetVersionExA. Sur macOS, Environment.OSVersion retourne la version sous-jacente du noyau Darwin.
À compter de .NET 5, Environment.OSVersion retourne la version réelle du système d’exploitation pour Windows et macOS.
Le tableau suivant montre la différence de comportement.
| Versions précédentes de .NET | .NET 5+ | |
|---|---|---|
| Windows | 6.2.9200.0 | 10.0.19042.0 |
| macOS | 19.6.0.0 | 10.15.7 |
Raison de la modification
Les utilisateurs de cette propriété s’attendent à ce qu’elle retourne la version réelle du système d’exploitation. La plupart des applications .NET ne spécifient pas leur version prise en charge dans leur manifeste d’application et obtiennent donc la version prise en charge par défaut à partir de l’hôte dotnet. Par conséquent, le shim de compatibilité est rarement significatif pour l’application en cours d’exécution. Lorsque Windows publie une nouvelle version et qu’un hôte dotnet plus ancien est toujours utilisé, ces applications peuvent obtenir une version incorrecte du système d’exploitation. Le retour de la version réelle est plus inline avec les attentes des développeurs de cette API.
Avec l'introduction de OperatingSystem.IsWindowsVersionAtLeast, OperatingSystem.IsMacOSVersionAtLeast et System.Runtime.Versioning.SupportedOSPlatformAttribute dans .NET 5, Environment.OSVersion a été modifié afin d'assurer la cohérence entre Windows et macOS.
Version introduite
5,0
Action recommandée
Passez en revue et testez tout code qui l’utilise Environment.OSVersion pour vous assurer qu’il se comporte comme vous le souhaitez.