Показать путь решения/файла в Visual Studio IDE

Я часто работаю с несколькими экземплярами Visual Studio, часто работая на разных ветвях одного и того же решения.

VC6 используется для отображения полного пути к текущему исходному файлу в строке заголовка, но Visual Studio 2005, похоже, не делает этого. Это делает его немного более неудобным, чем нужно для разработки той ветки решения, в которой я сейчас смотрю (самый быстрый способ, которым я знаю, - навести курсор мыши на вкладку, чтобы вы получили путь к исходному файлу в качестве всплывающей подсказки).

Есть ли способ получить полное решение или путь к файлу в строке заголовка или, по крайней мере, где-нибудь, что всегда видно, поэтому я могу быстро сказать, какая ветка загружена в каждый экземпляр?

Ответ 1

Не существует собственного способа сделать это, но вы можете добиться этого с помощью макроса. Подробности подробно описаны здесь: http://www.helixoft.com/blog/archives/32

Вам просто нужно добавить небольшой макрос VB в раздел макроса EvironmentEvents и перезапустить VS.

Примечание. Путь не будет отображаться при первой загрузке VS, но при каждом изменении файла, который вы просматриваете. Вероятно, есть способ исправить это, но это не похоже на большое дело.

Ответ 3

Ознакомьтесь с последней версией VSCommands 2010 Lite. В нем появилась функция Friendly Solution Name, в которой вы можете установить ее для отображения пути файла решения (или любой его части) в заголовке главного окна Visual Studio. Подробнее: http://vscommands.com/releasenotes/3.6.8.0 и http://vscommands.com/releasenotes/3.6.9.0 p >

Ответ 4

В 2008 году немного лучше написать макрос из принятого ответа выше, чтобы использовать события решения вместо документов - это позволяет вам всегда редактировать строку заголовка, даже если у вас нет выбранного документа, Здесь макрос моей коллеги и я собрал на основе другого - вы хотите изменить строки 15-18, чтобы вытащить имя вашего ветки из исходного каталога, но вы настроены.

01  Private timer As System.Threading.Timer
02  Declare Auto Function SetWindowText Lib "user32" (ByVal hWnd As System.IntPtr, ByVal lpstring As String) As Boolean
03   
04  Private _branchName As String = String.Empty
05  Private Sub SolutionEvents_Opened() Handles SolutionEvents.Opened
06      Try
07          If timer Is Nothing Then
08              ' Create timer which refreshes the caption because
09              ' IDE resets the caption very often
10              Dim autoEvent As New System.Threading.AutoResetEvent(False)
11              Dim timerDelegate As System.Threading.TimerCallback = _
12                  AddressOf tick
13              timer = New System.Threading.Timer(timerDelegate, autoEvent, 0, 25)
14          End If
15          Dim sourceIndex As Integer = DTE.Solution.FullName.IndexOf("\Source")
16          Dim shortTitle As String = DTE.Solution.FullName.Substring(0, sourceIndex)
17          Dim lastIndex As Integer = shortTitle.LastIndexOf("\")
18          _branchName = shortTitle.Substring(lastIndex + 1)
19          showTitle(_branchName)
20      Catch ex As Exception
21   
22      End Try
23  End Sub
24   
25  Private Sub SolutionEvents_BeforeClosing() Handles SolutionEvents.BeforeClosing
26      If Not timer Is Nothing Then
27          timer.Dispose()
28      End If
29  End Sub
30   
31   
32  ''' <summary>Dispose the timer on IDE shutdown.</summary>
33  Public Sub DTEEvents_OnBeginShutdown() Handles DTEEvents.OnBeginShutdown
34      If Not timer Is Nothing Then
35          timer.Dispose()
36      End If
37  End Sub
38   
39  '''<summary>Called by timer.</summary>
40  Public Sub tick(ByVal state As Object)
41      Try
42          showTitle(_branchName)
43      Catch ex As System.Exception
44      End Try
45  End Sub
46   
47  '''<summary>Shows the title in main window.</summary>
48  Private Sub showTitle(ByVal title As String)
49      SetWindowText(New System.IntPtr(DTE.MainWindow.HWnd), title & " - " & DTE.Name)
50  End Sub

Ответ 5

Я использую VSCommands 10, чтобы показать полный путь к файлу решения.

Friendly Name: {repo}
Solution Path Regex: (?<repo>.*)

Теперь мое основное окно заголовка выглядит следующим образом:

c:\repositories\acme.marketplace.trunk\Acme.Marketplace.web\Acme.Marketplace.Web.sln

Я могу быстро взглянуть и увидеть, что я работаю в папке trunk или в папке rc, потому что мы используем Mercurial (Hg) и сохраняем отдельные папки для trunk, 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

Ответ 6

Это неудобно. Наведение на вкладке действительно является одной из немногих полезных вещей. Альтернативы: щелкните правой кнопкой мыши на вкладке файла: http://weblogs.asp.net/piseth/archive/2008/11/08/find-your-file-path-in-visual-studio.aspx Кажется, что мы должны делать с этим

Ответ 7

Используйте команду MKLINK для создания ссылки на существующее решение. Что касается Visual Studio, то он работает с файлом ссылки, но любые изменения переходят к основному .sln файлу.

Я написал здесь запись в блоге...

http://willissoftware.com/?p=72

Ответ 9

Если вы используете VS2010 или выше, вы можете получить расширение "Редактор заголовков окон Visual Studio". Установите это и используйте следующее выражение "Настройка заголовка окна", чтобы отобразить путь решения:

'sln_dir + "/" + orig_title'

Используйте диспетчер расширений для загрузки и установки расширения. Подробная информация о расширении и том, как его использовать, можно найти здесь:

https://visualstudiogallery.msdn.microsoft.com/2e8ebfe4-023f-4c4d-9b7a-d05bbc5cb239?SRC=VSIDE

Ответ 10

Как настроить заголовок окна Visual Studio

Установите плагин Настроить заголовок окна Visual Studio.

После установки расширения настройки можно найти в меню.

Tools ► Options ► Customize VS Window Title.

Дополнительная информация

Customize Visual Studio Window Title - это легкое расширение для Visual Studio, которое позволяет вам изменить заголовок окна, чтобы включить дерево папок

введите описание изображения здесь

Функции

  • Конфигурируемое расстояние минимальной и максимальной глубины от файла решения/проекта
  • Позволяет использовать специальные теги, чтобы помочь со многими другими возможными сценариями, которые включают Git, Mercurial и TFS.

Ответ 11

Примечание: В качестве альтернативы, для Visual Studio 2005 вы можете использовать команду File → Advanced Save Options. В диалоговом окне отображается полный путь к текущему файлу, и вы можете скопировать текст.