60 votes

Comment détecter à l'exécution que la version 4.5 de .NET est actuellement en cours d'exécution dans votre code?

J'ai installé la version de développement .NET 4.5 d'aperçu à partir de http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=27541, qui 'remplace' la version .NET 4.0.

Cependant, l'ancienne manière de détecter la version du framework .NET semble renvoyer 4.0 (plus précisément 4.0.30319.17020 sur mon PC), au lieu de 4.5 (sûrement probablement pour la compatibilité ascendante, ou?):

using System;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            var version = Environment.Version;
            Console.WriteLine(version.ToString());
            Console.ReadKey();
        }
    }
}

Comment puis-je détecter que mon code est vraiment exécuté par .NET 4.5?

0 votes

Lorsque vous installez .NET, il ne 'remplace' rien. Allez voir dans C:\Windows\Microsoft.NET\Framework et vous verrez un dossier pour chaque framework que vous avez installé. Si vous souhaitez modifier le framework sous lequel votre application est compilée, il vous suffit d'ouvrir les propriétés de votre Projet dans l'Explorateur de solutions, puis de sélectionner le framework correct dans la liste déroulante "Framework cible".

13 votes

Il n'y a pas de "CLR 4.5", il utilise toujours la version CLR 4.0.30319.

3 votes

@tobias86: .NET 4.5 est différent. Il REMPLACE .NET 4.0 sur votre PC! :)

2voto

Matteo Mosca Points 3920

D'après ce que j'ai compris des ressources en ligne, .NET 4.5 agira de manière similaire (bien que pas complètement identique) à ce que 3.5 a fait pour la version 2.0 : votre numéro de version reste le même (si vous exécutez du code 3.5, la version CLR sera la 2.0), et elle agira comme une mise à jour de la CLR existante en 4.0.

Vous pourrez donc avoir en parallèle des versions 2.0 mises à jour en 3.5 et des versions 4.0 mises à jour en 4.5.

Ce qui reste encore flou, c'est de savoir s'il sera possible de créer (ou de travailler sur des projets existants) en 4.0 sans avoir à les mettre à niveau vers 4.5 : actuellement, vous pouvez créer des projets en 2.0 ou 3.5 dans Visual Studio 2010, mais peut-être que ce ne sera pas le cas pour les versions 4.0 et 4.5.

2 votes

Vous compilez simplement votre projet pour .NET 4.0 et il s'exécute automatiquement sous .NET 4.5 autant que je comprends (bien sûr, si sur votre PC, vous avez .NET 4.5 installé). Cependant, il est encore peu clair comment détecter cela en Runtime!

1voto

picolino Points 150

À partir de .NET Core 3.0 (et .NET Standard 2.1), la situation a changé et maintenant Environment.Version fonctionne correctement. Vous pouvez donc utiliser cette propriété pour détecter la version de dot net que vous utilisez.

System.Console.WriteLine($"Environment.Version: {System.Environment.Version}");

// Ancien résultat
//   Environment.Version: 4.0.30319.42000
//
// Nouveau résultat
//   Environment.Version: 3.0.0

Voir documentation pour plus d'informations.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X