मैं ILSpy के साथ एक संपूर्ण .NET असेंबली को अलग करना चाहता हूं।ILSpy, निर्भरताओं को हल करने के लिए कैसे?
मैं आधार के रूप में इस कोड का प्रयोग किया:
http://skysigal.xact-solutions.com/Blog/tabid/427/entryid/2488/Default.aspx
और यह ठीक काम करता है, बस जब मैं एक विधानसभा का संदर्भ देता है Npgsql.dll (या किसी अन्य गैर गाक विधानसभा), तो मैं एक AssemblyResolutionException मिलता है।
विधानसभा को हल करने में विफल: 'Npgsql, संस्करण = 2.0.11.92, संस्कृति = तटस्थ, PublicKeyToken = 5d8b90d52f46fda7'
मुझे पता है कि मैं संदर्भित विधानसभाओं प्राप्त कर सकते हैं, लेकिन कैसे मैं उन्हें AST को जोड़ सकते हैं?
// SqlWebAdmin.Models.Decompiler.DecompileAssembly("xy.dll");
public static string DecompileAssembly(string pathToAssembly)
{
//Assembly assembly = Assembly.LoadFrom(pathToAssembly);
System.Reflection.Assembly assembly = System.Reflection.Assembly.ReflectionOnlyLoadFrom(pathToAssembly);
//assembly.GetReferencedAssemblies();
//assembly.GetReferencedAssemblies(assembly);
Mono.Cecil.AssemblyDefinition assemblyDefinition =
Mono.Cecil.AssemblyDefinition.ReadAssembly(pathToAssembly);
ICSharpCode.Decompiler.Ast.AstBuilder astBuilder = new ICSharpCode.Decompiler.Ast.AstBuilder(new ICSharpCode.Decompiler.DecompilerContext(assemblyDefinition.MainModule));
astBuilder.AddAssembly(assemblyDefinition);
//new Helpers.RemoveCompilerAttribute().Run(decompiler.CompilationUnit);
using (System.IO.StringWriter output = new System.IO.StringWriter())
{
astBuilder.GenerateCode(new ICSharpCode.Decompiler.PlainTextOutput(output));
string result = output.ToString();
return result;
}
return "";
} // End Function DecompileAssembly
'//assembly.GetReferencedAssemblies();' अपने लिंक से मूल कोड में था ' GetReferencedAssemblies (असेंबली); ', क्या आपने इसे छोड़ दिया क्योंकि वे इस लेख में' GetReferencedAssemblies' क्या परिभाषित नहीं करते हैं? वह कोड शायद आपकी मदद करेगा। –
@ एम। बाबाकॉक: सही है लेकिन यह कोड कहीं भी नहीं है। और ऑब्जेक्ट मैनेजर में, कोई तरीका नहीं है GetReferencedAssemblies जो पैरामीटर के रूप में असेंबली लेता है ... –