diff --git a/ICSharpCode.ILSpyX/FileLoaders/ArchiveFileLoader.cs b/ICSharpCode.ILSpyX/FileLoaders/ArchiveFileLoader.cs index 6d6cda73a..1e17e61f2 100644 --- a/ICSharpCode.ILSpyX/FileLoaders/ArchiveFileLoader.cs +++ b/ICSharpCode.ILSpyX/FileLoaders/ArchiveFileLoader.cs @@ -25,6 +25,11 @@ namespace ICSharpCode.ILSpyX.FileLoaders { public Task Load(string fileName, Stream stream, FileLoadSettings settings) { + if (!File.Exists(fileName)) + { + return Task.FromResult(null); + } + try { var zip = LoadedPackage.FromZipFile(fileName); diff --git a/ICSharpCode.ILSpyX/FileLoaders/BundleFileLoader.cs b/ICSharpCode.ILSpyX/FileLoaders/BundleFileLoader.cs index 4f0ec5bfe..3bdd5c590 100644 --- a/ICSharpCode.ILSpyX/FileLoaders/BundleFileLoader.cs +++ b/ICSharpCode.ILSpyX/FileLoaders/BundleFileLoader.cs @@ -25,6 +25,10 @@ namespace ICSharpCode.ILSpyX.FileLoaders { public Task Load(string fileName, Stream stream, FileLoadSettings settings) { + if (!File.Exists(fileName)) + { + return Task.FromResult(default(LoadResult?)); + } var bundle = LoadedPackage.FromBundle(fileName); var result = bundle != null ? new LoadResult { Package = bundle } : null; return Task.FromResult(result); diff --git a/ICSharpCode.ILSpyX/FileLoaders/WebCilFileLoader.cs b/ICSharpCode.ILSpyX/FileLoaders/WebCilFileLoader.cs index 441ff10fb..e33457b66 100644 --- a/ICSharpCode.ILSpyX/FileLoaders/WebCilFileLoader.cs +++ b/ICSharpCode.ILSpyX/FileLoaders/WebCilFileLoader.cs @@ -28,6 +28,12 @@ namespace ICSharpCode.ILSpyX.FileLoaders { public Task Load(string fileName, Stream stream, FileLoadSettings settings) { + + if (!File.Exists(fileName)) + { + return Task.FromResult(null); + } + MetadataReaderOptions options = settings.ApplyWinRTProjections ? MetadataReaderOptions.ApplyWindowsRuntimeProjections : MetadataReaderOptions.None; diff --git a/ILSpy/TreeNodes/PackageFolderTreeNode.cs b/ILSpy/TreeNodes/PackageFolderTreeNode.cs index 6a631966d..81dbe9002 100644 --- a/ILSpy/TreeNodes/PackageFolderTreeNode.cs +++ b/ILSpy/TreeNodes/PackageFolderTreeNode.cs @@ -67,7 +67,8 @@ namespace ICSharpCode.ILSpy.TreeNodes } foreach (var entry in root.Entries.OrderBy(e => e.Name)) { - if (entry.Name.EndsWith(".dll", StringComparison.OrdinalIgnoreCase)) + if (entry.Name.EndsWith(".dll", StringComparison.OrdinalIgnoreCase) + || entry.Name.EndsWith(".exe", StringComparison.OrdinalIgnoreCase)) { var asm = root.ResolveFileName(entry.Name); if (asm != null)