1. ホーム
  2. c#

.NET Frameworkのディレクトリパスの取得

2023-09-06 18:56:37

質問

C# アプリケーション内で .NET Framework のディレクトリ パスを取得するにはどうすればよいですか。

参照するフォルダは、"C: \WINDOWSMicrosoft.NETFrameworkv2.0.50727"です。

解決方法を教えてください。

現在の.NETアプリケーションに対してアクティブなCLRのインストールディレクトリへのパスは、次の方法で取得できます。

System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeDirectory()

私なら <強い 強く はレジストリを直接読み込まないように助言します。例えば、64ビットシステムで.NETアプリケーションを実行する場合、CLRは "C:\WindowsMicrosoft.NETFramework64v2.0.50727" (AnyCPU, x64 compilation targets) または "C:\WindowsMicrosoft.NETFrameworkv2.0.50727" (x86 compilation target) からロードすることが可能です。レジストリを読み込むと not 2つのディレクトリのうちのどれが現在のCLRによって使用されたかを教えてくれる。

もう 1 つの重要な事実は、"現在の CLR" が .NET 2.0、.NET 3.0、および .NET 3.5 アプリケーションの "2.0" になることです。これは、GetRuntimeDirectory()呼び出しが、.NET 3.5アプリケーション(3.5ディレクトリからアセンブリの一部をロードする)内でも2.0ディレクトリを返すことを意味します。.NET Framework ディレクトリ パスの用語の解釈によっては、GetRuntimeDirectory は探している情報ではないかもしれません ("CLR directory" vs "which 3.5 assemblies are coming from")。