Browse Source

fix http://community.sharpdevelop.net/forums/p/15856/41473.aspx - Null Reference at Set as StartUp Project

pull/26/head
Siegfried Pammer 13 years ago
parent
commit
5f3fa30fda
  1. 20
      src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/ProjectNodeCommands.cs
  2. 4
      src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/AbstractProjectBrowserTreeNode.cs
  3. 2
      src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/ProjectNode.cs

20
src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/ProjectNodeCommands.cs

@ -12,13 +12,12 @@ namespace ICSharpCode.SharpDevelop.Project.Commands @@ -12,13 +12,12 @@ namespace ICSharpCode.SharpDevelop.Project.Commands
{
public override void Run()
{
AbstractProjectBrowserTreeNode node = ProjectBrowserPad.Instance.SelectedNode;
Solution solution = ProjectService.OpenSolution;
if (node == null || solution == null) {
IProject project = ProjectService.CurrentProject;
if (solution == null || project == null)
return;
}
if (node.Project.IsStartable) {
solution.Preferences.StartupProject = node.Project;
if (project.IsStartable) {
solution.Preferences.StartupProject = project;
} else {
MessageService.ShowError("${res:BackendBindings.ExecutionManager.CantExecuteDLLError}");
}
@ -34,15 +33,14 @@ namespace ICSharpCode.SharpDevelop.Project.Commands @@ -34,15 +33,14 @@ namespace ICSharpCode.SharpDevelop.Project.Commands
internal static void DoRunProject(bool withDebugging = true)
{
AbstractProjectBrowserTreeNode node = ProjectBrowserPad.Instance.SelectedNode;
if (node == null) {
IProject project = ProjectService.CurrentProject;
if (project == null)
return;
}
if (node.Project.IsStartable) {
BuildProjectBeforeExecute build = new BuildProjectBeforeExecute(node.Project);
if (project.IsStartable) {
BuildProjectBeforeExecute build = new BuildProjectBeforeExecute(project);
build.BuildComplete += delegate {
if (build.LastBuildResults.ErrorCount == 0) {
node.Project.Start(withDebugging);
project.Start(withDebugging);
}
};
build.Run();

4
src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/AbstractProjectBrowserTreeNode.cs

@ -51,8 +51,8 @@ namespace ICSharpCode.SharpDevelop.Project @@ -51,8 +51,8 @@ namespace ICSharpCode.SharpDevelop.Project
/// <summary>
/// Returns the project in which this node belongs to. This assumes that
/// any node is child of a project. THIS DON'T WORK ON COMBINE NODES!
/// (a combine node returns null)
/// any node is child of a project. Keep in mind that Solution Folders
/// and Solution Items do not have a project assigned.
/// </summary>
public virtual IProject Project {
get {

2
src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/ProjectNode.cs

@ -43,6 +43,8 @@ namespace ICSharpCode.SharpDevelop.Project @@ -43,6 +43,8 @@ namespace ICSharpCode.SharpDevelop.Project
public ProjectNode(IProject project)
{
if (project == null)
throw new ArgumentNullException("project");
sortOrder = 1;
this.ContextmenuAddinTreePath = "/SharpDevelop/Pads/ProjectBrowser/ContextMenu/ProjectNode";

Loading…
Cancel
Save