diff --git a/ICSharpCode.Decompiler/CSharp/WholeProjectDecompiler.cs b/ICSharpCode.Decompiler/CSharp/WholeProjectDecompiler.cs index 0dd06ba08..8b289f529 100644 --- a/ICSharpCode.Decompiler/CSharp/WholeProjectDecompiler.cs +++ b/ICSharpCode.Decompiler/CSharp/WholeProjectDecompiler.cs @@ -384,6 +384,8 @@ namespace ICSharpCode.Decompiler.CSharp } } catch (BadImageFormatException) { decodedIntoIndividualFiles = false; + } catch (EndOfStreamException) { + decodedIntoIndividualFiles = false; } if (decodedIntoIndividualFiles) { foreach (var entry in individualResources) { diff --git a/ILSpy/TreeNodes/ResourceNodes/ResourceTreeNode.cs b/ILSpy/TreeNodes/ResourceNodes/ResourceTreeNode.cs index 28ee973ca..3433f70d7 100644 --- a/ILSpy/TreeNodes/ResourceNodes/ResourceTreeNode.cs +++ b/ILSpy/TreeNodes/ResourceNodes/ResourceTreeNode.cs @@ -73,7 +73,7 @@ namespace ICSharpCode.ILSpy.TreeNodes ISmartTextOutput smartOutput = output as ISmartTextOutput; if (smartOutput != null) { - smartOutput.AddButton(Images.Save, Resources.Save, delegate { Save(null); }); + smartOutput.AddButton(Images.Save, Resources.Save, delegate { Save(MainWindow.Instance.TextView); }); output.WriteLine(); } } diff --git a/ILSpy/TreeNodes/ResourceNodes/ResourcesFileTreeNode.cs b/ILSpy/TreeNodes/ResourceNodes/ResourcesFileTreeNode.cs index 22b91d9b1..c1d908481 100644 --- a/ILSpy/TreeNodes/ResourceNodes/ResourcesFileTreeNode.cs +++ b/ILSpy/TreeNodes/ResourceNodes/ResourcesFileTreeNode.cs @@ -75,6 +75,8 @@ namespace ICSharpCode.ILSpy.TreeNodes } } catch (BadImageFormatException) { // ignore errors + } catch (EndOfStreamException) { + // ignore errors } } @@ -121,14 +123,21 @@ namespace ICSharpCode.ILSpy.TreeNodes } break; case 2: - using (var writer = new ResXResourceWriter(dlg.OpenFile())) { - foreach (var entry in new ResourcesFile(s)) { - writer.AddResource(entry.Key, entry.Value); + try { + using (var writer = new ResXResourceWriter(dlg.OpenFile())) { + foreach (var entry in new ResourcesFile(s)) { + writer.AddResource(entry.Key, entry.Value); + } } + } catch (BadImageFormatException) { + // ignore errors + } catch (EndOfStreamException) { + // ignore errors } break; } } + return true; }