From 8c82d98a3200f7cdc13ca89f101bad512ea4be6d Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Sat, 17 Mar 2018 20:17:10 +0100 Subject: [PATCH] Delay loading of nupkgs until MainWindow is visible; then display the assembly selection dialog. --- ILSpy/MainWindow.xaml.cs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/ILSpy/MainWindow.xaml.cs b/ILSpy/MainWindow.xaml.cs index d8c72ef3b..f99f04489 100644 --- a/ILSpy/MainWindow.xaml.cs +++ b/ILSpy/MainWindow.xaml.cs @@ -241,9 +241,21 @@ namespace ICSharpCode.ILSpy public event NotifyCollectionChangedEventHandler CurrentAssemblyListChanged; List commandLineLoadedAssemblies = new List(); + + List nugetPackagesToLoad = new List(); bool HandleCommandLineArguments(CommandLineArguments args) { + int i = 0; + while (i < args.AssembliesToLoad.Count) { + var asm = args.AssembliesToLoad[i]; + if (Path.GetExtension(asm) == ".nupkg") { + nugetPackagesToLoad.Add(asm); + args.AssembliesToLoad.RemoveAt(i); + } else { + i++; + } + } LoadAssemblies(args.AssembliesToLoad, commandLineLoadedAssemblies, false); if (args.Language != null) sessionSettings.FilterSettings.Language = Languages.GetLanguage(args.Language); @@ -252,6 +264,10 @@ namespace ICSharpCode.ILSpy void HandleCommandLineArgumentsAfterShowList(CommandLineArguments args) { + if (nugetPackagesToLoad.Count > 0) { + LoadAssemblies(nugetPackagesToLoad, commandLineLoadedAssemblies, focusNode: false); + nugetPackagesToLoad.Clear(); + } if (args.NavigateTo != null) { bool found = false; if (args.NavigateTo.StartsWith("N:", StringComparison.Ordinal)) {