From db65c49f0040d1884621649ed5991cab5f5a02cf Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Sun, 9 Jun 2019 16:17:16 +0200 Subject: [PATCH] Show full assembly load log in ReferenceFolderTreeNode. --- .../Metadata/DotNetCorePathFinderExtensions.cs | 8 ++++++++ ILSpy/TreeNodes/ReferenceFolderTreeNode.cs | 16 ++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/ICSharpCode.Decompiler/Metadata/DotNetCorePathFinderExtensions.cs b/ICSharpCode.Decompiler/Metadata/DotNetCorePathFinderExtensions.cs index 3bac328ce..0a3f17960 100644 --- a/ICSharpCode.Decompiler/Metadata/DotNetCorePathFinderExtensions.cs +++ b/ICSharpCode.Decompiler/Metadata/DotNetCorePathFinderExtensions.cs @@ -116,6 +116,14 @@ namespace ICSharpCode.Decompiler.Metadata } } + public IReadOnlyList Entries { + get { + lock (loadedAssemblyReferences) { + return loadedAssemblyReferences.Values.ToList(); + } + } + } + public bool HasErrors { get { lock (loadedAssemblyReferences) { diff --git a/ILSpy/TreeNodes/ReferenceFolderTreeNode.cs b/ILSpy/TreeNodes/ReferenceFolderTreeNode.cs index 1a157c7b8..331f8da08 100644 --- a/ILSpy/TreeNodes/ReferenceFolderTreeNode.cs +++ b/ILSpy/TreeNodes/ReferenceFolderTreeNode.cs @@ -71,6 +71,22 @@ namespace ICSharpCode.ILSpy.TreeNodes // Show metadata order of references foreach (var node in this.Children.OfType()) node.Decompile(language, output, options); + + output.WriteLine(); + output.WriteLine(); + // Show full assembly load log: + language.WriteCommentLine(output, "Assembly load log including transitive references:"); + var info = parentAssembly.LoadedAssembly.LoadedAssemblyReferencesInfo; + foreach (var asm in info.Entries) { + language.WriteCommentLine(output, asm.FullName); + output.Indent(); + foreach (var item in asm.Messages) { + language.WriteCommentLine(output, $"{item.Item1}: {item.Item2}"); + } + output.Unindent(); + output.WriteLine(); + } + } } }