Browse Source

Fixed importing VS 2003 projects.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@2070 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 19 years ago
parent
commit
4a4f605b32
  1. 14
      src/Main/Base/Project/Src/Project/MSBuildBasedProject.cs
  2. 18
      src/Main/Base/Project/Src/Project/UnknownProject.cs
  3. 9
      src/Main/Base/Project/Src/Services/LanguageBinding/LanguageBindingService.cs
  4. 6
      src/Main/Base/Project/Src/Services/ProjectService/ProjectService.cs

14
src/Main/Base/Project/Src/Project/MSBuildBasedProject.cs

@ -798,7 +798,19 @@ namespace ICSharpCode.SharpDevelop.Project @@ -798,7 +798,19 @@ namespace ICSharpCode.SharpDevelop.Project
InitializeMSBuildProject();
project.Load(fileName);
try {
project.Load(fileName);
} catch (MSBuild.InvalidProjectFileException ex) {
LoggingService.Warn(ex);
if (ex.ErrorCode == "MSB4075") {
// "The project file must be opened in VS IDE and converted to latest version
// before it can be build by MSBuild."
Converter.PrjxToSolutionProject.ConvertVSNetProject(fileName);
project.Load(fileName);
} else {
throw;
}
}
this.ActiveConfiguration = GetEvaluatedProperty("Configuration") ?? this.ActiveConfiguration;
this.ActivePlatform = GetEvaluatedProperty("Platform") ?? this.ActivePlatform;

18
src/Main/Base/Project/Src/Project/UnknownProject.cs

@ -6,22 +6,38 @@ @@ -6,22 +6,38 @@
// </file>
using System;
using ICSharpCode.Core;
namespace ICSharpCode.SharpDevelop.Project
{
public class UnknownProject : AbstractProject
{
string warningText = "${res:ICSharpCode.SharpDevelop.Commands.ProjectBrowser.NoBackendForProjectType}";
bool warningDisplayedToUser;
public string WarningText {
get { return warningText; }
set { warningText = value; }
}
public UnknownProject(string fileName, string title, string warningText)
public bool WarningDisplayedToUser {
get { return warningDisplayedToUser; }
set { warningDisplayedToUser = value; }
}
public void ShowWarningMessageBox()
{
warningDisplayedToUser = true;
MessageService.ShowError("Error loading " + this.FileName + ":\n" + warningText);
}
public UnknownProject(string fileName, string title, string warningText, bool displayWarningToUser)
: this(fileName, title)
{
this.warningText = warningText;
if (displayWarningToUser) {
ShowWarningMessageBox();
}
}
public UnknownProject(string fileName, string title)

9
src/Main/Base/Project/Src/Services/LanguageBinding/LanguageBindingService.cs

@ -117,16 +117,13 @@ namespace ICSharpCode.SharpDevelop @@ -117,16 +117,13 @@ namespace ICSharpCode.SharpDevelop
try {
newProject = binding.LoadProject(provider, location, title);
} catch (XmlException ex) {
MessageService.ShowError("Error loading " + location + ":\n" + ex.Message);
newProject = new UnknownProject(location, title, ex.Message);
newProject = new UnknownProject(location, title, ex.Message, true);
newProject.TypeGuid = projectTypeGuid;
} catch (Microsoft.Build.BuildEngine.InvalidProjectFileException ex) {
MessageService.ShowError("Error loading " + location + ":\n" + ex.Message);
newProject = new UnknownProject(location, title, ex.Message);
newProject = new UnknownProject(location, title, ex.Message, true);
newProject.TypeGuid = projectTypeGuid;
} catch (UnauthorizedAccessException ex) {
MessageService.ShowError("Error loading " + location + ":\n" + ex.Message);
newProject = new UnknownProject(location, title, ex.Message);
newProject = new UnknownProject(location, title, ex.Message, true);
newProject.TypeGuid = projectTypeGuid;
}
} else {

6
src/Main/Base/Project/Src/Services/ProjectService/ProjectService.cs

@ -349,6 +349,12 @@ namespace ICSharpCode.SharpDevelop.Project @@ -349,6 +349,12 @@ namespace ICSharpCode.SharpDevelop.Project
IProject project;
if (binding != null) {
project = LanguageBindingService.LoadProject(solution, fileName, solution.Name);
if (project is UnknownProject) {
if (((UnknownProject)project).WarningDisplayedToUser == false) {
((UnknownProject)project).ShowWarningMessageBox();
}
return;
}
} else {
MessageService.ShowError(StringParser.Parse("${res:ICSharpCode.SharpDevelop.Commands.OpenCombine.InvalidProjectOrCombine}", new string[,] {{"FileName", fileName}}));
return;

Loading…
Cancel
Save