Rename Visual Studio Window Title


This lightweight extension will detect whenever two instances of Visual Studio are running with the same window title and change the window title of Visual Studio to include a folder tree with a configurable min depth and max depth distance from the solution/project file. With...

(45) Review
Visual Studio
2013, 2012, 2010
Download (27,453)
E-mail Twitter Digg Facebook
Add to favorites
Reviews (45)
Q and A (19)
Sign in to write a review
Sort by:

by Cristi-Ingineru | September 11 2014

by sacke | August 27 2014

by TyWeb | July 23 2014

Very limited documentation. There is NO WAY this product can display the FULL file path. I would not recommend installing this product! I used the Visual Studio Window Title Changer by István Pásztor ( and I was up and running in 2 minutes. A far superior product if you want to display the FULL file path.

by Beanium | July 10 2014

Does exactly what I need, simple, configurable, very useful. Std feature of the IDE!?

by shmuel k | June 19 2014

Greate 10x !!!!

by tomasz_poradowski | May 14 2014

Very helpful when you're working on i.e. different branches of the same project.

by goodeye6 | April 19 2014

Outstanding. Perfect solution to juggling branches.

by bkstill | April 18 2014

Perfect for keeping track of which branch I'm working in.

by PCoombe | March 20 2014

Absolutely essential for working on multiple branches

by Yves Dolce at Mindspark | February 27 2014

by Russell Freeman | February 20 2014

Simple and effective for telling you what branch you are in.

by MSDaly | February 04 2014

Truly useful. It's one of those things that you wonder why Visual Studio doesn't do it straight out of the box.

by Jacob Kamp Lund | November 19 2013

It really helps to distinguish multiple instances of Visual Studio from one another and is very customizable.

This is truly one of the gems that everyone should install - no matter if you're a novice or professional!

by Espen Rudrud | November 18 2013

by DominicHoffmann | November 18 2013

a great Add-In and really useful. Highly recommendable for any Developer

by sharptooth | October 22 2013

Why this isn't a standard part of Visual Studio is anyone's guess, so thank you Erwin Mayer. This functionality is incredibly useful when managing multiple instances of the same solution but across different code streams.

by DannOh | September 18 2013

Very helpful.

by Jeff Vest | August 22 2013

Just awesome. Exactly what I was looking for. The ability to tell it to clip from the front and the end, in terms of the path components, is awesome. It lets me show exactly the information I need to know what branch I'm in. I'm so glad you can do it without multiple instances too! You should change your description, since I almost didn't use this extension with that in the description.

Mayerwin August 23 2013
| Edit |

Thanks for the compliments and feedback. I have updated the description accordingly.

by burton | August 21 2013

It is common for me to have a solution open from multiple branches. This is and awesome tool to reduce confusion and errors. Thanks!

by Roman Hrašna | July 30 2013

Excellent extension, time saver. Thanks

1 - 20 of 45 Items   
Sign in to start a discussion

  • Can't use Git 1.9.0
    7 Posts | Last post June 26, 2014
    • Good morning!
      It seems that the extensions can't find Git 1.9.0:
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
      RenameVSWindowTitle: [gitBranchName] Exception: System.ComponentModel.Win32Exception (0x80004005): The system cannot find the file specified
         at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
         at System.Diagnostics.Process.Start()
         at ErwinMayerLabs.RenameVSWindowTitle.RenameVSWindowTitle.IsGitRepository(String workingDirectory)
         at ErwinMayerLabs.RenameVSWindowTitle.RenameVSWindowTitle.GetNewTitle(String pattern)
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
      I'm using VS2013.
      Someone else?
    • Hi Ferdinando, have you made sure git is part of your PATH? (if you type "git.exe" in any command line, it should be a recognized command for the feature to work).
    • Got it, thank you :)
    • Hi Mayerwin, Ferdinando,
      I have been get this issue. I think need note "Need & How to add git.exe to Windows PATH" in Description.
    • Good suggestions, thanks.
    • HI Mayerwin,
      Thank for your description.
      Is it possible have color format?
      Example: [gitBrachName/color:red/bold:true/italic:true]
      Thank :)
    • Unfortunately, I am not aware of any way to change the color/font format in a window title. It is certainly possible (everything is possible), but may require very unorthodox hooks. You are free to play with the extension's source code if you would like to check this further.
  • Start Screen
    3 Posts | Last post April 22, 2014
    • Hi,
      Is it possible that you could also manipulate Visual Studio's start screen so the recent solution list gets displayed in the same format?
    • Hi cpmcgrath, thanks for your suggestion. I am not sure it would be possible to manipulate the start screen, but will look into it and keep you posted.
      A workaround in the meantime would be to hover the links to see the full path.
    • +1. It would be a great idea.
  • Latest release error (2.6)
    7 Posts | Last post February 23, 2014
    • Hi i'm using Visual Studio 2013 with a tfs2012 back end. Since updating to the latest version the rename has stopped working. If i switch the debug output on i get the following output.
      RenameVSWindowTitle: UpdateWindowTitle exception: System.InvalidCastException: [A]Microsoft.VisualStudio.TeamFoundation.VersionControl.VersionControlExt cannot be cast to [B]Microsoft.VisualStudio.TeamFoundation.VersionControl.VersionControlExt. Type A originates from 'Microsoft.VisualStudio.TeamFoundation.VersionControl, Version=, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' in the context 'Default' at location 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.VisualStudio.TeamFoundation.VersionControl\v4.0_12.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.TeamFoundation.VersionControl.dll'. Type B originates from 'Microsoft.VisualStudio.TeamFoundation.VersionControl, Version=, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' in the context 'Default' at location 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.VisualStudio.TeamFoundation.VersionControl\v4.0_11.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.TeamFoundation.VersionControl.dll'.
         at ErwinMayerLabs.RenameVSWindowTitle.RenameVSWindowTitle.GetNewTitle(String pattern)
         at ErwinMayerLabs.RenameVSWindowTitle.RenameVSWindowTitle.UpdateWindowTitle(Object state, EventArgs e)
    • Hi, I have rolledback to 2.5.0 while I am looking for a fix. Please uninstall and reinstall if no update option is proposed. Sorry for the inconvenience.
      It seems the assemblies needed to support TFS (the feature added by 2.6.0) are not compatible across versions of Visual Studio...
      Which is not easy to test for me unfortunately.
    • You can fix this with reflection. That way your plugin doesn't have to have dependencies on TF assemblies and you can load the correct version at runtime. For example for VS2013 you can use the following assembly reference: "Microsoft.TeamFoundation.VersionControl.Client.Workstation, Microsoft.TeamFoundation.VersionControl.Client, Version=, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
      You can obtain the typeinfo for the WorkspaceInfo class similarly.
      For vs2012 and 2010 you just replace the first digit of the assembly reference version to dte_version: and respectively. I could get the workspacename of a VS2013 workspace name from a VS2010 instance with this technique.
      I don't know whether different Visual Studio versions load and use different assembly versions than their own in some circumstances... My guess would be that they always use their own version but I havent check this.
    • I actually fixed this already in the current release, by simply loading the required object without strong typing: "dynamic vce = this.DTE.GetObject("Microsoft.VisualStudio.TeamFoundation.VersionControl.VersionControlExt")"
      This way I don't even need a version number so it should be future-proof :).
    • That solution is indeed nicer, I went the reflection route because I wanted code that compiles with older VS versions too. As I see VersionControlExt is available only for VS2012 and later according to msdn, if you use Workstation.Current.GetLocalWorkspaceInfo then your code will work for VS2005-VS2013 if the objects come from the right assembly version. I've tested it as I have all versions installed at work.
    • Good point, I had not tested workspaceName under VS 2010 and it does indeed not get replaced. No one has complained so far, but I already have a possible fix thanks to your suggestion. The only issue is that I am not able to test as I am not a TFS user myself, so I will wait until someone needs this and is willing to test before releasing into the wild.
      I am only looking up assembly by short name "Microsoft.TeamFoundation.VersionControl.Client.Workstation" instead of the fully qualified name, do you think it would not work?
      Nice job with your extension by the way :).
    • Thank you! I've used your extension before but I created a very big mess on my hard drive with many projects that have different directory structures. My first plugin to aid this was basically the same as yours, I just modified the config so I could add several option pages depending on the solution filename. Then I thought it would be fun to mess around a bit with expression evaluation and this project was a good fit. My plugin is much more complicated, its rather for "hardcore" users. :-)
      Although on the msdn page of Microsoft.VisualStudio.TeamFoundation.VersionControl.VersionControlExt class I can switch only to VS2012 and VS2013 I've found forum entries where people said it is accessible in VS2005 while it isn't in VS2008. With my VS2010 I could also query it without problems so it is most probably an msdn documentation bug. I think you should stick to your current solution if people don't complain. The DTE.GetObject() works differently than my code that uses reflection, DTE.GetObject() call returns COM references and in my opinion a specific version of the dte reference probably always returns its own versioncontrol objects. I've compiled a plugin in VS2010 with dynamic typing and under VS2013 the plugin queried the right interface with GetObject(). Additionally a problem with Workstation.Current is that it isn't visible to COM.
      I'm also far from being a TFS user, I just downloaded and installed the 90day VS2013 trial ( and since the basic TFS service is free for 5 users ( I've created 2 test workspaces. You could give it a go, the setup is easy and then you have a testbed.
  • Git branch name?
    6 Posts | Last post February 22, 2014
    • It would be really handy if we could include the name of the current git branch for the solution (assuming we're in a git repo)
    • This post inspired me in finding out a new feature to implement in my extension in the near future. My extension sets the title by evaluating a user defined expression. By introducing a new "exec" function call that is performed periodically by the expression evaluator (for example every X seconds defined by the user) the expression could use the output of a custom command as part of the titlebar of Visual Studio. The custom command could be a git command, or a custom script of the user that further customizes the output and exitcode of some other external command(s). This gives an extra layer of freedom in setting the titlebar.
      +1 virtual points for your post :-)
    • Hi Wilka, I have just updated the extension to support Git branch names using the tag [gitBranchName] :). Enjoy.
    • Hi! Switching Git branches makes my title bar go multirow, pretty ugly :(
      Someone else experienced this?
    • Thanks for your feedback Ferdinando. I have updated the extension to fix this, using "git symbolic-ref --short -q HEAD" as the command to obtain the branch name. Please check version 2.7.1.
    • Thank you Mayerwin, weel done! :)
  • documentPath tag?
    2 Posts | Last post February 18, 2014
    • Am I missing something or can I not simply show the whole path of the active file like C:\WhatSoEver\SolutionFolderParent\SolutionFolder\subproject\folder1\folder2\myfile.cs or relative to the solution like SolutionFolder\subproject\folder1\folder2\myfile.js
      Or should parentX works relative from the file as well? Only able to get it working relative to the solution file.
      Any comments?
    • Hi pantarhei, currently this scenario is not supported but it could be in a future release, as it should not be very hard to implement.
      parentX only refers to the parents from the solution file.
  • How about adding Workspace name into the title?
    3 Posts | Last post February 07, 2014
    • I work on many branches and often use several workspaces to keep my changes from various efforts separate.  it would be great to see the Workspace name in the title bar.
    • +1
    • Your wish has been granted with 2.6.0 :)
  • Rename "Start Page" recent projects
    2 Posts | Last post January 31, 2014
    • Hey,
      First of all thanks for a great extension.
      A nice feature to add is renaming the "Recent Projects" section in the start page.
      I have the same solution that i use under different branches all the time, it will make it much easier to detect which one i want to open.
    • +1 - This functionality would be very helpful!
  • How to get full path of solution
    2 Posts | Last post January 21, 2014
    • Hi
      I used to have "SolutionName(FullSolutionPath) - ..."
      but now it says "SolutionName(SolutionParentDirectory) - ..."
      Seems like this is a difference in meaning of [parentPath] between 2012 and 2013 version.
      How do I get FullSolutionPath in 2013 version?
      By the way there is a bug in 2012 version it says C:MyFolder\Folder2 instead of C:\MyFolder\Folder2 i.e.: missing first backslash
    • Hi Jens, you need to specify "Farthest parent folder depth" = 20 (for example, could also be 100 depending on how deep is your folder structure) in options to show the full directory no matter what.
      When you installed on VS 2013 it did not copy the config from your 2012 installation, this is why you are seeing the default behavior of only one parent folder shown.
      Regarding the bug you mentioned, it is well spotted and after checking it is due to an unexpected design of a function used to build the path:
      I may implement a workaround in a future release, but stripping the slash could actually be preferred as it reduces the title length (and it should be less troubling than before to know it is an expected behavior).
  • Display currently active project?
    3 Posts | Last post November 13, 2013
    • Is it possible to display the currently active project in the title bar also?
      Thanks for that great add-in anyways and also thanks in advance for an answer to my question.
    • I just added this feature for you. You can now use the tag [activeProjectName] to show the name of the current project file. Enjoy!
    • That was fast :) Thanks a lot
  • Multiple Window Support
    2 Posts | Last post September 20, 2013
    • I just installed your plugin yesterday and it works great. I did find one minor issue or at least what I think is an issue. I have a dual monitor set up and often drag documents to my secondary display. When I do the title for window that is created for these files does not match that of the main visual Studio. 
      In other words:
           The Main IDE - Has BranchName\SolutionName
           Secondary Window - Has Only SolutionName
    • I should also State that this issue is in VS2012
1 - 10 of 19 Items