From 35394eb1afdb6772706315125a7264eff8d92ddd Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Thu, 6 Sep 2012 20:45:06 +0200 Subject: [PATCH] Fixed crash when adding new/existing projects to an existing solution. --- src/Main/Base/Project/Src/Project/AbstractProject.cs | 4 ++++ .../Base/Project/Src/Project/MSBuildBasedProject.cs | 11 +++++------ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/Main/Base/Project/Src/Project/AbstractProject.cs b/src/Main/Base/Project/Src/Project/AbstractProject.cs index 23e50cfc2b..5da6e9da60 100644 --- a/src/Main/Base/Project/Src/Project/AbstractProject.cs +++ b/src/Main/Base/Project/Src/Project/AbstractProject.cs @@ -186,6 +186,8 @@ namespace ICSharpCode.SharpDevelop.Project get { return activeConfiguration; } set { WorkbenchSingleton.AssertMainThread(); + if (value == null) + throw new ArgumentNullException(); if (activeConfiguration != value) { activeConfiguration = value; @@ -210,6 +212,8 @@ namespace ICSharpCode.SharpDevelop.Project get { return activePlatform; } set { WorkbenchSingleton.AssertMainThread(); + if (value == null) + throw new ArgumentNullException(); if (activePlatform != value) { activePlatform = value; diff --git a/src/Main/Base/Project/Src/Project/MSBuildBasedProject.cs b/src/Main/Base/Project/Src/Project/MSBuildBasedProject.cs index 6b4cc98693..9191089fbb 100644 --- a/src/Main/Base/Project/Src/Project/MSBuildBasedProject.cs +++ b/src/Main/Base/Project/Src/Project/MSBuildBasedProject.cs @@ -402,10 +402,7 @@ namespace ICSharpCode.SharpDevelop.Project Dictionary globalProps = new Dictionary(); InitializeMSBuildProjectProperties(globalProps); globalProps["Configuration"] = configuration; - - //HACK: the ActivePlatform property should be set properly before entering here, but sometimes it does not - if (platform != null) - globalProps["Platform"] = platform; + globalProps["Platform"] = platform; MSBuild.Project project = MSBuildInternals.LoadProject(projectCollection, projectFile, globalProps); if (openCurrentConfiguration) currentlyOpenProject = project; @@ -1246,8 +1243,10 @@ namespace ICSharpCode.SharpDevelop.Project { this.projectCollection = loadInformation.ParentSolution.MSBuildProjectCollection; this.FileName = loadInformation.FileName; - this.ActiveConfiguration = loadInformation.Configuration; - this.ActivePlatform = loadInformation.Platform; + if (loadInformation.Configuration != null) + this.ActiveConfiguration = loadInformation.Configuration; + if (loadInformation.Platform != null) + this.ActivePlatform = loadInformation.Platform; projectFile = ProjectRootElement.Open(loadInformation.FileName, projectCollection); if (loadInformation.upgradeToolsVersion == true && CanUpgradeToolsVersion()) {