Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLluis Sanchez <lluis@xamarin.com>2014-02-27 12:54:53 +0400
committerLluis Sanchez <lluis@xamarin.com>2014-02-27 12:54:53 +0400
commit933596361dbbe73c7caf12e94eef8e4508210110 (patch)
treebdba6615c375700e096ecc9872c58c72f276171e /main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProjectHandler.cs
parentda9b5936454b9af093f2f0868a8ad73dd5286413 (diff)
[Core] Improve unsupported project loading
Show the loading error message in the project pad.
Diffstat (limited to 'main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProjectHandler.cs')
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProjectHandler.cs20
1 files changed, 16 insertions, 4 deletions
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProjectHandler.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProjectHandler.cs
index 3fa6ff8a59..c282ef4995 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProjectHandler.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProjectHandler.cs
@@ -53,6 +53,7 @@ namespace MonoDevelop.Projects.Formats.MSBuild
RemoteProjectBuilder projectBuilder;
ITimeTracker timer;
bool modifiedInMemory;
+ UnknownProjectTypeNode unknownProjectTypeInfo;
string lastBuildToolsVersion;
string lastBuildRuntime;
@@ -72,12 +73,23 @@ namespace MonoDevelop.Projects.Formats.MSBuild
string productVersion;
string schemaVersion;
- public bool ProjectTypeIsUnsupported { get; set; }
+ internal bool ProjectTypeIsUnsupported {
+ get { return unknownProjectTypeInfo != null; }
+ }
+
+ internal UnknownProjectTypeNode UnknownProjectTypeInfo {
+ get { return unknownProjectTypeInfo; }
+ }
public List<string> TargetImports {
get { return targetImports; }
}
+ internal void SetUnsupportedType (UnknownProjectTypeNode typeInfo)
+ {
+ unknownProjectTypeInfo = typeInfo;
+ }
+
internal override void SetSolutionFormat (MSBuildFileFormat format, bool converting)
{
// when converting formats, set ToolsVersion, ProductVersion, SchemaVersion to default values written by VS
@@ -403,7 +415,7 @@ namespace MonoDevelop.Projects.Formats.MSBuild
string itemType, Type itemClass)
{
if (ProjectTypeIsUnsupported)
- return new UnknownProject (fileName);
+ return new UnknownProject (fileName, UnknownProjectTypeInfo.GetInstructions ());
if (subtypeGuids.Any ()) {
DotNetProjectSubtypeNode st = MSBuildProjectService.GetDotNetProjectSubtype (subtypeGuids);
@@ -438,8 +450,8 @@ namespace MonoDevelop.Projects.Formats.MSBuild
} else {
var projectInfo = MSBuildProjectService.GetUnknownProjectTypeInfo (subtypeGuids.ToArray ());
if (projectInfo != null && projectInfo.LoadFiles) {
- ProjectTypeIsUnsupported = true;
- return new UnknownProject (fileName);
+ SetUnsupportedType (projectInfo);
+ return new UnknownProject (fileName, UnknownProjectTypeInfo.GetInstructions ());
}
throw new UnknownSolutionItemTypeException (ProjectTypeIsUnsupported ? TypeGuid : string.Join (";", subtypeGuids));
}