きな粉もち.net

.NET関連仕事に携わっています。OSSのソースを読んで気がついたことを中心に呟いたりブログに投稿したりしています。最近はUiPathを使ったRPAも研究中。気軽にフォローやツッコミよろしくおねがいします! Gitはここを使っています https://github.com/kinakomotitti

.NET Framework × CLR × 基礎知識

インストールされているCLRのバージョンを知りたい、調べたいことってよくありますよねw

そんな時、clrver.exeを使うことで、簡単に調べることができます!

 

・・・と、いうことが以下のブログで紹介されていました。

 

Did you know – You can check all the installed Common Language Runtime (CLR) Versions in your machine?

 

便利だなーと思ったところで、CLRってなんだっけってなったので、調べてみました。

 

まず、CLRとは、Common Language Runtimeという名前で、C#VBなど、いろいろなプログラミング言語から利用される共通部品のようなものです。

主要な機能としては、メモリ管理やスレッドの同期などがありますが、C#などのプログラミング言語を利用する実際の開発者は、CLRを意識しなくてもそれらの機能を利用することができます。

 

では、そんなCLRプログラミング言語との関係はどうなっているのでしょうか。

調べた結果、以下のような形で落ち着きました。

 

.NET Framework  ← Windowsに必須のフレームワーク

   ・アセンブリで構成されています。(mscoreei.dllなどがそれです。)

    ※アセンブリ(assembly) = コンポーネント とは?
     以下のものの 論理的な 集合体。
     フォルダみたいなもの。

      -モジュール(module) ← これ大事

                      -リソースファイル

 

     ・モジュールの種類

               ・managed module ← CLRによって管理されている=マネージド

      CLRを利用

      C#VBC++などで実装

               ・unmanaged module ← CLRによって管理されていない=アンマネージド

      CLRを使わずに、独自でメモリ管理などの機能を実装

      C++で実装

 

 

ということで、まとめです。

CLRはマネージドな言語が利用する共通部品のようなもの。

・それのバージョンを確認するためのツールがclrver.exe*1

*1:%systemroot%\Microsoft.NET\Frameworkのフォルダにあります。