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
Filed under: .NET, mono, f#, c#, vb, Python