実行中のC#/VBコードから、.NET Frameworkのバージョンを調べる方法です。
インストール時のバージョンチェックなどで使用すると便利かもです。
スポンサーリンク
レジストリから .NET Frameworkバージョンを取得
.NET Framework 4.x系に限定されてしまいますが、レジストリのHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full
から、.NET Frameworkのバージョンを取得できます。
C#・VBからは、Win32 APIのクラスライブラリを使ってレジストリより値を取得します。
string version =
Microsoft.Win32.Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full", "Version", "").ToString();
アセンブリからバージョンを取得
参照しているフレームワークのアセンブリから、バージョンを取得することで、使用している 「.NET Framework」「.NET Core」などのフレームワークバージョンを調べることができます。
次のコードのように、System.String
のようなクラスのアセンブリを取得し、そのバージョンを取得することで、実行している環境のフレームワークバージョンを調べることが可能です。
string varsion = typeof (System.String).Assembly.GetName ().Version.ToString();
System.Console.WriteLine(varsion);
私の環境には .NET Frameworkがインストールされているため、次のような結果になりました。
実行結果
----------------------
4.0.0.0
プログラムからレジストリにアクセスするには、それなりの権限が必要となりますが、このフレームワークのアセンブリからバージョンを取得する方法であれば、ほとんどの環境で取得できるでしょう。
0 件のコメント:
コメントを投稿