diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/DirectoryNode.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/DirectoryNode.cs index bbdf7e5080..dc5c3b4ef9 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/DirectoryNode.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/DirectoryNode.cs @@ -594,18 +594,21 @@ namespace ICSharpCode.SharpDevelop.Project ProjectService.SaveSolution(); } - public void CopyDirectoryHere(string fileName, bool performMove) + public void CopyDirectoryHere(string directoryName, bool performMove) { - AddExistingItemsToProject.CopyDirectory(fileName, this, true); + string copiedName = Path.Combine(Directory, Path.GetFileName(directoryName)); + if (FileUtility.IsEqualFileName(directoryName, copiedName)) + return; + AddExistingItemsToProject.CopyDirectory(directoryName, this, true); if (performMove) { foreach (IViewContent content in WorkbenchSingleton.Workbench.ViewContentCollection) { if (content.FileName != null && - FileUtility.IsBaseDirectory(fileName, content.FileName)) + FileUtility.IsBaseDirectory(directoryName, content.FileName)) { - content.FileName = FileUtility.RenameBaseDirectory(content.FileName, fileName, Path.Combine(this.directory, Path.GetFileName(fileName))); + content.FileName = FileUtility.RenameBaseDirectory(content.FileName, directoryName, Path.Combine(this.directory, Path.GetFileName(directoryName))); } } - FileService.RemoveFile(fileName, true); + FileService.RemoveFile(directoryName, true); } } diff --git a/src/Main/Base/Project/Src/Project/MSBuildEngine.cs b/src/Main/Base/Project/Src/Project/MSBuildEngine.cs index 0358a566a6..99f20c7040 100644 --- a/src/Main/Base/Project/Src/Project/MSBuildEngine.cs +++ b/src/Main/Base/Project/Src/Project/MSBuildEngine.cs @@ -207,6 +207,9 @@ namespace ICSharpCode.SharpDevelop.Project results.NativeCompilerReturnValue = 0; else results.NativeCompilerReturnValue = 1; + } catch (ArgumentException ex) { + results.NativeCompilerReturnValue = -2; + results.Errors.Add(new CompilerError(null, -1, -1, "", ex.Message)); } catch (InvalidProjectFileException ex) { results.NativeCompilerReturnValue = -2; results.Errors.Add(new CompilerError(ex.ProjectFile, ex.LineNumber, ex.ColumnNumber, ex.ErrorCode, ex.Message));