Friday, 18 May 2012

Editing project files in Visual Studio

The standard way of editing a project file in Visual Studio is to first unload the project, and then right-click on the unloaded project in the Solution Explorer and choose 'Edit Project'.

Wouldn't it be nice if this was just one step instead of two?

Well one option is to install the Visual Studio PowerCommands or VSCommands extensions, both which add an 'Edit Project' option to the context menu for loaded projects. But if that's the only feature you want then installing one of those extensions might be more than you need.

Another option is to create a Visual Studio Macro and then add that to the context menu manually. Here's how:

  1. First, go to the Tools menu and choose Macros | Macros IDE.
  2. A "Microsoft Visual Studio Macros" IDE window appears.
  3. In the project explorer, right-click on 'MyMacros' and choose Add | Add Module
  4. Name the module "Projects"
  5. Within the new module, add the following code:
    Public Sub EditProject()
        ' Ensure only projects are selected
        For Each item As SelectedItem In DTE.SelectedItems
    
            If Not (TypeOf item.Project Is Project) Then
                MsgBox("Can't open project(s) for editing as non-project items are selected", MsgBoxStyle.Exclamation)
                Exit Sub
            End If
        Next
    
        ' ensure solution is active
        DTE.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate()
    
        For Each item As SelectedItem In DTE.SelectedItems
            DTE.ExecuteCommand("Project.UnloadProject")
            DTE.ExecuteCommand("OtherContextMenus.StubProject.EditProjectFile")
    
        Next
    
    End Sub
  6. Save and close the Microsoft Visual Studio Macros IDE
  7. Now you can associate a keyboard shortcut with this new macro, and you can optionally add it to the project context menu.

 

  1. To add it to the context menu, go to Tools | Customize
  2. Select the 'Commands' tab and choose 'Project and Solution Context Menu | Project' in the Context Menu dropdown list.
  3. Scroll down the list of controls for this menu to find the location where you'd like this macro to appear.
  4. Select an existing control, and click on 'Add Command'
  5. Select the 'Macros' category
  6. Select the new macro from the Commands list and click on 'OK'
  7. Click on 'Modify Selection' to rename the menu item for the macro to 'Edit Project'
    Visual Studio Customize dialog window

Now, when ever you use the keyboard shortcut or the new 'Edit Project' from the Solution Explorer's context menu, the selected project(s) will now be opened in the text editor.

1 comment:

Anonymous said...

Thanks David, very elegant!