Comment puis-je obtenir de l' .NET Framework chemin d'accès au répertoire à l'intérieur de mon application en C#?
Le dossier que je me réfère est "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727"
Comment puis-je obtenir de l' .NET Framework chemin d'accès au répertoire à l'intérieur de mon application en C#?
Le dossier que je me réfère est "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727"
Le chemin d'accès au répertoire d'installation de la CLR active pour le courant .NET application peut être obtenu en utilisant la méthode suivante:
System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeDirectory()
Je voudrais vivement les conseils contre la lecture directement le registre. Par exemple, lorsqu'un .NET application est en cours d'exécution dans les systèmes 64 bits, le CLR peut être chargé à partir d' "C:\Windows\Microsoft.NET\Framework64\v2.0.50727" (AnyCPU, x64 compilation cibles) ou de "C:\Windows\Microsoft.NET\Framework\v2.0.50727" (x86 compilation cible). La lecture du registre sera pas vous dire laquelle des deux répertoires a été utilisé par le CLR.
Un autre fait important est que "l'actuel CLR" sera "2.0".NET 2.0, .NET 3.0 et .NET 3.5 applications. Cela signifie que le GetRuntimeDirectory() va retourner 2.0 répertoire même à l'intérieur .NET 3.5 applications (qui charge certains de leurs assemblées à partir de 3,5 répertoire). Selon votre interprétation du terme ".NET Framework chemin d'accès au répertoire", GetRuntimeDirectory peut-être pas l'information que vous recherchez ("CLR répertoire" et "répertoire à partir duquel 3.5 assemblées sont à venir à partir de").
Vous pouvez la saisir dans le Registre Windows:
using System;
using Microsoft.Win32;
// ...
public static string GetFrameworkDirectory()
{
// This is the location of the .Net Framework Registry Key
string framworkRegPath = @"Software\Microsoft\.NetFramework";
// Get a non-writable key from the registry
RegistryKey netFramework = Registry.LocalMachine.OpenSubKey(framworkRegPath, false);
// Retrieve the install root path for the framework
string installRoot = netFramework.GetValue("InstallRoot").ToString();
// Retrieve the version of the framework executing this program
string version = string.Format(@"v{0}.{1}.{2}\",
Environment.Version.Major,
Environment.Version.Minor,
Environment.Version.Build);
// Return the path of the framework
return System.IO.Path.Combine(installRoot, version);
}
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.