我经常使用Visual Studio的多个实例,经常在同一解决方案的不同分支上工作。
Visual C ++ 6.0用于在其标题栏中显示当前源文件的完整路径,但是Visual Studio 2005似乎没有执行此操作。这比确定我当前正在查看的解决方案的哪个分支稍微有些尴尬(我知道的最快方法是将鼠标悬停在选项卡上,以便获得源文件的路径作为工具提示)。
有没有办法将完整的解决方案或文件路径放入标题栏,或者至少将其始终显示在某个位置,以便我可以快速确定将哪个分支装入每个实例?
我经常使用Visual Studio的多个实例,经常在同一解决方案的不同分支上工作。
Visual C ++ 6.0用于在其标题栏中显示当前源文件的完整路径,但是Visual Studio 2005似乎没有执行此操作。这比确定我当前正在查看的解决方案的哪个分支稍微有些尴尬(我知道的最快方法是将鼠标悬停在选项卡上,以便获得源文件的路径作为工具提示)。
有没有办法将完整的解决方案或文件路径放入标题栏,或者至少将其始终显示在某个位置,以便我可以快速确定将哪个分支装入每个实例?
Answers:
没有本地方法可以执行此操作,但是可以使用宏来实现。在此处完整描述了详细信息:如何在VS 2005标题栏中显示完整的文件路径(或其他任何内容)
您只需要向EvironmentEvents宏部分添加一个Visual Basic宏,然后重新启动Visual Studio。
注意:第一次加载Visual Studio时,该路径不会显示,但是当您更改要查看的文件时,该路径将显示。可能有解决此问题的方法,但这似乎没什么大不了的。
这是专门为这项工作量身定制的在线画廊中的扩展。结帐实验室> Visual Studio扩展:自定义Visual Studio窗口标题。
查看VSCommands 2010 Lite的最新版本。它引入了一个称为“友好解决方案名称”的功能,您可以在其中设置它以在Visual Studio的主窗口标题中显示解决方案文件路径(或其任何部分)。
更多详细信息:http : //vscommands.com/releasenotes/3.6.8.0和http://vscommands.com/releasenotes/3.6.9.0
对于Visual Studio 2008,从接受的答案中编写宏的一种更好的方法是使用解决方案事件而不是文档事件-这样,即使您没有选择文档,也可以始终编辑标题栏。
这是我和我的同事根据另一个宏放在一起的宏-您将需要更改第15-18行,以从源目录中提取分支名称,以便进行设置。
Private timer As System.Threading.Timer
Declare Auto Function SetWindowText Lib "user32" (ByVal hWnd As System.IntPtr, ByVal lpstring As String) As Boolean
Private _branchName As String = String.Empty
Private Sub SolutionEvents_Opened() Handles SolutionEvents.Opened
Try
If timer Is Nothing Then
' Create timer which refreshes the caption because
' IDE resets the caption very often
Dim autoEvent As New System.Threading.AutoResetEvent(False)
Dim timerDelegate As System.Threading.TimerCallback = _
AddressOf tick
timer = New System.Threading.Timer(timerDelegate, autoEvent, 0, 25)
End If
Dim sourceIndex As Integer = DTE.Solution.FullName.IndexOf("\Source")
Dim shortTitle As String = DTE.Solution.FullName.Substring(0, sourceIndex)
Dim lastIndex As Integer = shortTitle.LastIndexOf("\")
_branchName = shortTitle.Substring(lastIndex + 1)
showTitle(_branchName)
Catch ex As Exception
End Try
End Sub
Private Sub SolutionEvents_BeforeClosing() Handles SolutionEvents.BeforeClosing
If Not timer Is Nothing Then
timer.Dispose()
End If
End Sub
''' <summary>Dispose the timer on IDE shutdown.</summary>
Public Sub DTEEvents_OnBeginShutdown() Handles DTEEvents.OnBeginShutdown
If Not timer Is Nothing Then
timer.Dispose()
End If
End Sub
'''<summary>Called by timer.</summary>
Public Sub tick(ByVal state As Object)
Try
showTitle(_branchName)
Catch ex As System.Exception
End Try
End Sub
'''<summary>Shows the title in main window.</summary>
Private Sub showTitle(ByVal title As String)
SetWindowText(New System.IntPtr(DTE.MainWindow.HWnd), title & " - " & DTE.Name)
End Sub
确实很尴尬。将鼠标悬停在选项卡上确实是少数有用的事情之一。
替代方案:右键单击文件选项卡:在Visual Studio中找到您的文件路径。看来我们与此有关。
我正在使用VSCommands 10来显示打开的解决方案文件的完整路径。
Friendly Name: {repo}
Solution Path Regex: (?<repo>.*)
现在我的主标题窗口如下所示:
c:\repositories\acme.marketplace.trunk\Acme.Marketplace.web\Acme.Marketplace.Web.sln
我可以快速浏览一下,发现我在主干文件夹或rc文件夹中工作,因为我们使用Mercurial(Hg)并为主干,rc,preprod和prod保留了单独的文件夹,如下所示:
c:\repositories\acme.marketplace.rc1
c:\repositories\acme.marketplace.rc2
c:\repositories\acme.marketplace.trunk
c:\repositories\acme.marketplace.preprod
c:\repositories\acme.marketplace.prod
安装自定义Visual Studio窗口标题插件。
安装扩展程序后,可以在菜单中找到设置。
菜单工具►选项►自定义VS窗口标题。
更多信息
自定义Visual Studio窗口标题是Visual Studio的轻型扩展,它允许您更改窗口标题以包括文件夹树:
对于没有使用VB方法的人(像我一样),您可以使用插件:
它已在Visual Studio 2008 Ultimate中进行了测试。您可以在Visual Studio的“选项”菜单中对其进行配置。
如果您使用的是Visual Studio 2010或更高版本,则可以使用扩展名“ Visual Studio窗口标题更改器”。
安装此程序并使用以下“窗口标题设置”表达式来显示解决方案路径:
'sln_dir + "/" + orig_title'
使用扩展程序管理器下载并安装扩展程序。扩展的详细信息以及如何使用它可以在这里找到:
https://visualstudiogallery.msdn.microsoft.com/2e8ebfe4-023f-4c4d-9b7a-d05bbc5cb239?SRC=VSIDE
这是一个非常不错的(尽管是付费的)Visual Studio扩展,它提供:
它在编辑器窗口的底部显示完整的文件路径:
Visual Studio Code版本1.26实现了面包屑,当使用选项卡时,该文件路径在编辑器窗口顶部的单独行中显示文件路径,或者在其自己的窗口中内联文件名。