diff options
author | Lluis Sanchez <lluis@xamarin.com> | 2014-02-27 12:54:53 +0400 |
---|---|---|
committer | Lluis Sanchez <lluis@xamarin.com> | 2014-02-27 12:54:53 +0400 |
commit | 933596361dbbe73c7caf12e94eef8e4508210110 (patch) | |
tree | bdba6615c375700e096ecc9872c58c72f276171e /main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProjectHandler.cs | |
parent | da9b5936454b9af093f2f0868a8ad73dd5286413 (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.cs | 20 |
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)); } |