我经常有一个以上的Visual Studio副本,查看我们软件的不同分支。分支名称映射到包含解决方案文件的文件系统中的文件夹。
我希望能够以一种难以避免的方式快速告诉我所在的分支机构!
答案 0 :(得分:5)
我认为不可能根据当前加载的解决方案有条件地更改Visual Studio中的菜单/工具栏颜色。漂亮的Visual Studio Color Theme Editor确实为您提供了一种改变整个环境颜色方案的方法,但它不支持您正在寻找的那种细粒度控制。 Visual Studio的所有实例都将应用相同的颜色方案。
我唯一知道的可能是你想做的就是微软的Productivity Power Tools扩展。在众多功能中(如果您不喜欢它们,或者它们与您已安装的其他扩展程序冲突,大多数功能都可以关闭),它还支持广泛的选项卡自定义(它们称为“Tab Well UI” “)。
具体来说,它允许您“根据他们的项目或根据正则表达式对选项卡进行着色”:
此选项允许根据所属项目对选项卡进行着色。这在按项目排序选项卡时特别有用,因为它允许您立即识别不同的项目文档组。 您还可以配置正则表达式并为每个表达式指定颜色。如果选项卡的名称与配置的正则表达式匹配,则它将使用指定的颜色着色。
以下是按项目打开,排序和着色的一些随机标签的示例屏幕截图:
我没有亲自尝试将其配置为与Visual Studio的多个同时实例一起使用,但我已经使用它几周了(虽然使用正则表达式样式突出显示,而不是按项目),并且它似乎相当稳定和可配置。我希望能够一目了然地区分各种类型的打开文件。
答案 1 :(得分:1)
如果您大量使用分支机构,那么您可以做的最令人沮丧的错误之一就是修改错误的分支。我有一个由几个解决方案组成的项目,每个解决方案包含不同的UI项目,每个项目使用WCF作为后端,但作为单独的软件发布。每当我们发布一个UI的新版本时,我们就会创建一个分支,所以我们可以支持修补程序,SP等。
一个简单的解决方案是创建一个Visual Studio宏(http://www.helixoft.com/blog/archives/32),它使用正则表达式来解析解决方案文件的完整路径,搜索标识分支的特定文件夹结构。这是完整的代码:
Declare Auto Function SetWindowText Lib "user32" (ByVal hWnd As System.IntPtr, _
ByVal lpstring As String) As Boolean
Private Sub showTitle(ByVal title As String)
SetWindowText(New System.IntPtr(DTE.MainWindow.HWnd), title & " - " & DTE.Name)
End Sub
Private Sub SolutionEvents_Opened() Handles SolutionEvents.Opened
Dim m As Match = Regex.Match( _
DTE.Solution.FullName, _
"Branch.*\\(?<project>.*)\\(?<branch>.*)\\(?<sln>.*)\.sln", _
RegexOptions.IgnoreCase)
If (m.Success) Then
Dim project As String = m.Groups("project").Value
Dim version As String = m.Groups("branch").Value
Dim sln As String = m.Groups("sln").Value
showTitle(String.Format("BRANCH [{0}] - Project {1} - {2}", _
version, project, sln))
End If
End Sub
您需要将此代码粘贴到“工具”中打开的“宏”编辑器中。宏 - &gt;宏IDE
在打开的编辑器中,只需双击MyMacros,展开EnvironmentEvents,就可以将代码添加到Visual Studio支持的每个处理程序中。
如果你查看代码,我只需要一个正则表达式,允许我解析我在项目中的典型分支路径结构,其中我有Branch \ someothertext \ nameoftheproject \ branchnumber \ solutionfile.sln。
HTH 干杯,塔伦