Author: lluis
Date: 2007-04-27 11:13:53 -0400 (Fri, 27 Apr 2007)
New Revision: 76387
Modified:
trunk/monodevelop/Core/src/MonoDevelop.Projects/ChangeLog
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects/Project.cs
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects/ProjectConvertTool.cs
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects/ProjectFileCollection.cs
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects/ProjectService.cs
Log:
* MonoDevelop.Projects/ProjectService.cs: Report errors using the
progress monitor, instead of throwing an exception.
* MonoDevelop.Projects/ProjectConvertTool.cs: Print an error message if
the project can't be exported.
* MonoDevelop.Projects/ProjectFileCollection.cs: In GetFile, compare
files using the full path.
* MonoDevelop.Projects/Project.cs: When exporting a project, include
referenced assemblies.
Modified: trunk/monodevelop/Core/src/MonoDevelop.Projects/ChangeLog
===================================================================
--- trunk/monodevelop/Core/src/MonoDevelop.Projects/ChangeLog 2007-04-27
13:29:42 UTC (rev 76386)
+++ trunk/monodevelop/Core/src/MonoDevelop.Projects/ChangeLog 2007-04-27
15:13:53 UTC (rev 76387)
@@ -1,3 +1,14 @@
+2007-04-27 Lluis Sanchez Gual <[EMAIL PROTECTED]>
+
+ * MonoDevelop.Projects/ProjectService.cs: Report errors using the
+ progress monitor, instead of throwing an exception.
+ * MonoDevelop.Projects/ProjectConvertTool.cs: Print an error message if
+ the project can't be exported.
+ * MonoDevelop.Projects/ProjectFileCollection.cs: In GetFile, compare
+ files using the full path.
+ * MonoDevelop.Projects/Project.cs: When exporting a project, include
+ referenced assemblies.
+
2007-04-26 Ankit Jain <[EMAIL PROTECTED]>
* MonoDevelop.Projects/Project.cs (CheckNeedsBuild): If any project
Modified:
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects/Project.cs
===================================================================
---
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects/Project.cs
2007-04-27 13:29:42 UTC (rev 76386)
+++
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects/Project.cs
2007-04-27 15:13:53 UTC (rev 76387)
@@ -561,6 +561,9 @@
if (pf.Subtype != Subtype.Directory)
col.Add (pf.FilePath);
}
+ foreach (ProjectReference pref in ProjectReferences)
+ if (pref.ReferenceType ==
ReferenceType.Assembly)
+ col.Add (pref.Reference);
return col;
}
Modified:
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects/ProjectConvertTool.cs
===================================================================
---
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects/ProjectConvertTool.cs
2007-04-27 13:29:42 UTC (rev 76386)
+++
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects/ProjectConvertTool.cs
2007-04-27 15:13:53 UTC (rev 76387)
@@ -100,8 +100,14 @@
destPath = Runtime.FileService.GetFullPath (destPath);
string ofile = Services.ProjectService.Export (monitor,
projectFile, destPath, format);
- Console.WriteLine ("Saved file: " + ofile);
- return 0;
+ if (ofile != null) {
+ Console.WriteLine ("Saved file: " + ofile);
+ return 0;
+ }
+ else {
+ Console.WriteLine ("Project export failed.");
+ return 1;
+ }
}
}
}
Modified:
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects/ProjectFileCollection.cs
===================================================================
---
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects/ProjectFileCollection.cs
2007-04-27 13:29:42 UTC (rev 76386)
+++
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects/ProjectFileCollection.cs
2007-04-27 15:13:53 UTC (rev 76387)
@@ -7,6 +7,7 @@
using System;
using System.Collections;
using System.IO;
+using MonoDevelop.Core;
namespace MonoDevelop.Projects
{
@@ -38,8 +39,10 @@
public ProjectFile GetFile (string fileName)
{
if (fileName == null) return null;
+ fileName = Runtime.FileService.GetFullPath (fileName);
+
foreach (ProjectFile file in this) {
- if (file.Name == fileName)
+ if (Runtime.FileService.GetFullPath (file.Name)
== fileName)
return file;
}
return null;
Modified:
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects/ProjectService.cs
===================================================================
---
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects/ProjectService.cs
2007-04-27 13:29:42 UTC (rev 76386)
+++
trunk/monodevelop/Core/src/MonoDevelop.Projects/MonoDevelop.Projects/ProjectService.cs
2007-04-27 15:13:53 UTC (rev 76387)
@@ -115,7 +115,8 @@
if (sourcePath != targetPath) {
using (CombineEntry sourceEntry =
ReadCombineEntry (rootSourceFile, monitor)) {
- Export (monitor, sourceEntry,
sourceEntry.BaseDirectory, targetPath, true);
+ if (!Export (monitor, sourceEntry,
sourceEntry.BaseDirectory, targetPath, true))
+ return null;
}
newFile = Path.Combine (targetPath,
Path.GetFileName (rootSourceFile));
@@ -174,7 +175,7 @@
}
}
- void Export (IProgressMonitor monitor, CombineEntry entry,
string baseCombinePath, string targetBasePath, bool recursive)
+ bool Export (IProgressMonitor monitor, CombineEntry entry,
string baseCombinePath, string targetBasePath, bool recursive)
{
StringCollection files = entry.GetExportFiles ();
@@ -182,8 +183,10 @@
string fname = Runtime.FileService.GetFullPath
(file);
// Can't export files from outside the root
solution directory
- if (!fname.StartsWith (baseCombinePath +
Path.DirectorySeparatorChar))
- throw new InvalidOperationException
("The project or solution references a file located outside the root solution
directory.", null);
+ if (!fname.StartsWith (baseCombinePath +
Path.DirectorySeparatorChar)) {
+ monitor.ReportError ("The project or
solution '" + entry.Name + "' is referencing the file '" + Path.GetFileName
(file) + "' which is located outside the root solution directory.", null);
+ return false;
+ }
string rpath =
Runtime.FileService.AbsoluteToRelativePath (baseCombinePath, fname);
rpath = Path.Combine (targetBasePath, rpath);
@@ -191,13 +194,15 @@
if (!Directory.Exists (Path.GetDirectoryName
(rpath)))
Directory.CreateDirectory
(Runtime.FileService.GetFullPath (Path.GetDirectoryName (rpath)));
- File.Copy (file, rpath);
+ File.Copy (file, rpath, true);
}
if (recursive && entry is Combine) {
foreach (CombineEntry e in
((Combine)entry).Entries)
- Export (monitor, e, baseCombinePath,
targetBasePath, true);
+ if (!Export (monitor, e,
baseCombinePath, targetBasePath, true))
+ return false;
}
+ return true;
}
bool ChangeFormat (IProgressMonitor monitor, CombineEntry
entry, ArrayList entriesToExport, IFileFormat format, ArrayList oldFiles)
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches