2010-12-02 15 views
1

私はコンピュータにexplorer.exeによって読み込まれた管理シェル拡張があることを知っています。私は、CLRのどのバージョンがexplorer.exeにロードされているか知りたいです。 VistaまたはWin7を実行している場合は、Process Explorerを使用し、explorer.exeのプロパティの[.NETアセンブリ]タブを参照してください。しかし、これはXPでは動作しません。 XPでこの情報を入手する方法はありますか?XP上で実行中のアプリケーションによってロードされる.NET CLRのバージョンを確認するにはどうすればよいですか?

答えて

6

Process Explorerには、ロードされたDLLも表示されますか?そのリスト内でmscorwks.dllを探し、どこからロードされているかを確認します。 (それはワークステーションのバージョンです - サーバーのバージョンは何であるか覚えていませんが、とにかくXPボックスで見ることはできません)

+1

ああ、クールです。したがって、「mscorwks」を検索して結果に「explorer.exe」と表示され、ハンドルまたはDLLのパスにC:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727というパスが表示されている場合は、 CLR v2.0.50727を使用していますか? –

+0

@Jack Smith:これは、explorer.exeがCLR v2.xxxを読み込んだことを意味します。 CLR v4では、複数のバージョンのCLRを同じプロセスで読み込むことができます... –

+0

ありがとうございました。 CLR 4が動作していて以前のバージョンもロードされていた場合、mscorwks.dllはv4の場所からロードされますか? –

6

ターゲットコンピュータにVisual Studioがインストールされている場合は、Visual Studio Command Promptclrver<pid>を使用して、プロセスにロードされているCLRのバージョンを確認できます。例えば

C:\>clrver 4900 
v2.0.50727 

これはPID 4900とプロセスは、.NET 2ロードされたことを示しています。

C:\>clrver -h 
Displays CLR versions 
Usage: clrver [-?|-all|<PID>] 

     -all - Displays all processes on the machine using the CLR. 
     <PID> - Displays the version of the CLR used by the specified process. 
     -? - Displays this help screen. 

If called with no options, clrver will display all installed CLR versions. 
関連する問題