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)) {