2016-09-22 8 views
0

Sysinternals Process Explorer에는 ".NET 어셈블리"탭이 있습니다.코드 (C# 또는 PowerShell)를 통해 프로세스 (예 : Sysinternals Process Explorer)에서 .NET 어셈블리 정보 가져 오기

이 탭은 .NET 어셈블리를 실제로 사용하는 프로세스의 속성에만 표시됩니다.

PowerShell 또는 C#을 사용하여 실행중인 프로세스에서 동일한 정보를 얻으려면 어떻게해야합니까?

감사합니다.

+0

확인 [이] (http://stackoverflow.com/questions/383686/how-do-you-you-loop-through-currently-loaded-assemblies) – 3615

+0

감사합니다. 불행하게도이 코드는 프로세스의 '자체 반영'을 의미합니다. 현재 실행중인 다른 프로세스에 대한 정보를 읽고 싶습니다. –

+0

그러면 MDBG를 사용하여 해당 프로세스에 연결하고 어셈블리를 분석 할 수 있습니다. 그러나 아마도 그것은 잔인한 것이고 더 쉬운 방법이 있습니다. – 3615

답변

1

this answer을보고 나면 필요한 것을 얻을 수있는 쉬운 방법이 없다는 것을 깨달았습니다. nuget에서 MDBG 패키지를 사용하여

 _engine = new MDbgEngine(); 
     _engine.Attach(p.Id, RuntimeEnvironment.GetSystemVersion()); 
     _engine.Processes.Active.Go().WaitOne(); 
     foreach (MDbgAppDomain appDomain in _engine.Processes.Active.AppDomains) { 
      foreach (CorAssembly assembly in appDomain.CorAppDomain.Assemblies) { 
       Console.WriteLine(assembly.Name); 
      } 

     } 

당신은해야합니다 : 그럼 에 대한 귀하의 문제를 해결하기 위해 MDBG로 가자는 프로세스를 관리 <package id="Microsoft.Samples.Debugging.MdbgEngine" version="1.4.0.0" targetFramework="net452" />

+0

그 입력에 감사드립니다. 나는 이것을 사용하여 어셈블리를 수집 할 수있었습니다. 일부 프로세스 (예 : 크롬)의 경우 멈추는 것처럼 보입니다. –

+0

@TimoSperisen 응답으로 언급했듯이 .NET은 .NET 관리 프로세스에서만 작동하지만 Chrome은 주로 C++로 작성되었으며 CLR에서는 실행되지 않습니다. Sysinternals Process Explorer의 크롬에 대한 탭 ".NET 어셈블리"는 무엇입니까? – 3615

+0

@TimoSperisen 굶주림을 피하려면 [this] (http://stackoverflow.com/a/2080161/5246145) (테스트하지 않았 음)와 같은 것을 시도하십시오 – 3615