Browse Source

Project icons in the Projects pad now have a new context menu item that will open the folder where the projects output binaries are placed.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@3228 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Justin Dearing 18 years ago
parent
commit
7c761d5574
  1. 3
      AddIns/ICSharpCode.SharpDevelop.addin
  2. 22
      src/Main/Base/Project/Src/Commands/ProjectMenuCommands.cs
  3. 15
      src/Main/Base/Project/Src/Project/CompilableProject.cs

3
AddIns/ICSharpCode.SharpDevelop.addin

@ -340,6 +340,9 @@ @@ -340,6 +340,9 @@
<MenuItem id = "GenerateDocumentation"
label = "${res:ProjectComponent.ContextMenu.GenerateDocumentation}"
class = "ICSharpCode.SharpDevelop.Project.Commands.GenerateProjectDocumentation"/>
<MenuItem id = "OpenProjectOutputFolder"
label = "${res:ProjectComponent.ContextMenu.OpenProjectOutputFolder}"
class = "ICSharpCode.SharpDevelop.Project.Commands.OpenProjectOutputFolder"/>
</Path>
<Path name = "/SharpDevelop/Pads/ProjectBrowser/ContextMenu/ReferenceFolderNode">

22
src/Main/Base/Project/Src/Commands/ProjectMenuCommands.cs

@ -85,4 +85,26 @@ namespace ICSharpCode.SharpDevelop.Project.Commands @@ -85,4 +85,26 @@ namespace ICSharpCode.SharpDevelop.Project.Commands
Process.Start(psi);
}
}
/// <summary>
/// Opens the projects output folder in an explorer window.
/// </summary>
public class OpenProjectOutputFolder : AbstractMenuCommand
{
public override void Run()
{
CompilableProject project = ProjectService.CurrentProject as CompilableProject;
if (project == null) {
return;
}
// Explorer does not handle relative paths as a command line argument properly
string outputFolder = project.OutputFullPath;
if (!Directory.Exists(outputFolder)) {
Directory.CreateDirectory(outputFolder);
}
Process.Start(outputFolder);
}
}
}

15
src/Main/Base/Project/Src/Project/CompilableProject.cs

@ -163,6 +163,9 @@ namespace ICSharpCode.SharpDevelop.Project @@ -163,6 +163,9 @@ namespace ICSharpCode.SharpDevelop.Project
set { SetProperty("RootNamespace", value); }
}
/// <summary>
/// The full path of the assembly generated by the project.
/// </summary>
public override string OutputAssemblyFullPath {
get {
string outputPath = GetEvaluatedProperty("OutputPath") ?? "";
@ -170,6 +173,18 @@ namespace ICSharpCode.SharpDevelop.Project @@ -170,6 +173,18 @@ namespace ICSharpCode.SharpDevelop.Project
}
}
/// <summary>
/// The full path of the folder where the project's primary output files go.
/// </summary>
public string OutputFullPath {
get {
string outputPath = GetEvaluatedProperty("OutputPath");
// Path.GetFullPath() cleans up any back references.
// e.g. C:\windows\system32\..\system becomes C:\windows\system
return Path.GetFullPath(Path.Combine(Directory, outputPath));
}
}
[Browsable(false)]
public OutputType OutputType {
get {

Loading…
Cancel
Save