Sunday, April 24, 2011 1:00 AM dede

List of Reference Assembly of dot net Assembly

Q:
Bagaimana melihat list dari Reference Assembly sebuah .Net Program?

A:
Cara paling simple dengan menggunakan Mono.Cecil (https://github.com/jbevain/cecil).


// C#
// using Mono.Cecil;
const String asmFile = @"DotNetAssembly.dll.OR.exe";
var path = Path.Combine(Directory.GetParent(String.Concat(Environment.CurrentDirectory, @"\..\..")).FullName, asmFile);
var asmDef = AssemblyDefinition.ReadAssembly(path);

foreach (var anrRef in asmDef.MainModule.AssemblyReferences)
	Console.WriteLine(anrRef.Name);

Console.ReadLine();


' VB.Net
' Imports Mono.Cecil
Const asmFile As String = "DotNetAssembly.dll.OR.exe"
Dim asmDef = AssemblyDefinition.ReadAssembly(Path.Combine(Directory.GetParent(String.Concat(Environment.CurrentDirectory, "\..\..")).FullName, asmFile))

For Each asmRef In asmDef.MainModule.AssemblyReferences
	Console.WriteLine(asmRef.Name)
Next

Console.ReadLine()


// F#
#light
open System
open System.IO
open Mono.Cecil

let asmFile = "DotNetAssembly.dll.OR.exe"
let asmDef = AssemblyDefinition.ReadAssembly(Path.Combine(Directory.GetParent(String.Concat(Environment.CurrentDirectory, "\..\..")).FullName, asmFile))

for asmRef in asmDef.MainModule.AssemblyReferences do
   printfn "%s" asmRef.Name

Console.ReadLine() |> ignore


# IronPython
import clr

from System import *
from System.IO import *
from System.Collections import *
from System.Reflection import *

clr.AddReferenceToFileAndPath(Path.Combine(Environment.CurrentDirectory, 'Mono.Cecil.dll'))
from Mono.Cecil import *

asmFile = "DotNetAssembly.dll.OR.exe"
asmDef = AssemblyDefinition.ReadAssembly(Path.Combine(Directory.GetParent(Environment.CurrentDirectory).FullName, asmFile))

for i in range(asmDef.MainModule.AssemblyReferences.Count):
    print asmDef.MainModule.AssemblyReferences[ i ].Name
Share this post: | | | |
Filed under: , , , , ,

Comments

No Comments