Visual studio 有没有办法设置每个解决方案的颜色选项(VS2010)?

Visual studio 有没有办法设置每个解决方案的颜色选项(VS2010)?,visual-studio,visual-studio-2010,Visual Studio,Visual Studio 2010,有没有办法将VS2010配置为针对不同的解决方案使用不同的配色方案?在20世纪90年代的Macintosh上,我可以将wctb资源添加到文档中,以便它们以不同的颜色方案打开。这样可以更容易地找到要单击的正确窗口,也有助于避免意外地在错误的文档中键入内容(如果打开了多个类似的文档,则很容易做到)。在VS2010中有没有什么好方法可以达到类似的效果?我主要想改变文本背景色和窗口背景色 当我使用vs2005和vbEx2005时,我可以将vbEx设置为一个方案,将vs设置为另一个方案,但现在我使用vs2

有没有办法将VS2010配置为针对不同的解决方案使用不同的配色方案?在20世纪90年代的Macintosh上,我可以将wctb资源添加到文档中,以便它们以不同的颜色方案打开。这样可以更容易地找到要单击的正确窗口,也有助于避免意外地在错误的文档中键入内容(如果打开了多个类似的文档,则很容易做到)。在VS2010中有没有什么好方法可以达到类似的效果?我主要想改变文本背景色和窗口背景色


当我使用vs2005和vbEx2005时,我可以将vbEx设置为一个方案,将vs设置为另一个方案,但现在我使用vs2010处理所有问题。有什么好方法可以根据每个项目设置颜色吗?

没有。颜色是根据每个Visual Studio实例进行维护的。没有办法以更精细的粒度(如项目级别)定制它们。

除非编写一些代码。正如Jared已经提到的,要更改的颜色是VS级别设置的一部分。但是,可以编写一个VS扩展名(甚至只是一个宏),在打开解决方案时将设置切换到解决方案特定的首选项

这里有一个很好的方法。选择“宏IDE…”,然后打开“EnvironmentEvents”,并在“自动生成代码”区域后添加以下内容:

子handleColorSettings()处理SolutionEvents.Open、DocumentEvents.DocumentOpen 暗霉色为UInt32 myColor=&HC0FFFF 尝试 myColor=UInt32.Parse(IO.File.ReadAllText(DTE.Solution.FullName&“.bgcolor.txt”)、Globalization.NumberStyles.allowehexspecifier) 特例 结束尝试 CType(DTE.Properties(“FontSandColor”,“TextEditor”).Item(“FontsAndColorsItems”).Object,EnvDTE.FontsAndColorsItems.Item(“纯文本”).Background=myColor 端接头
无论何时打开项目或在项目中打开文件,系统都会查找名为“(fullSolutionName).bgcolor.txt”的文件。例如,如果解决方案是“myThing.sln”,则使用的文件将是“myThing.sln.bgcolor.txt”。如果找到这样一个文件,并且该文件包含有效的十六进制数,则该十六进制数将用作背景色。否则,将使用默认颜色(&hC0FFFF,但易于更改)。

您可以作为不同的用户运行Visual Studio,并为每个用户选择不同的颜色方案。 首先,您需要创建一个具有管理员权限的本地用户。 然后,右键单击Visual Studio上的+Shift->以不同用户身份运行,并输入您创建的用户和密码。
如果要通过批处理文件以其他用户的身份运行Visual Studio,可以使用“runas”命令或下载“psexec”工具。

是否有方法设置自动启动宏以根据当前加载的项目配置颜色?我的理解是,可以设置宏来完成很多事情,但我不知道如何确定要使用哪些宏命令来完成这些任务。@Nicole Calinoiu:查看我上面的解决方案。很好的解决方案。我通过一个小的增强(添加了
或Globalization.NumberStyles.allowReadingWhite或Globalization.NumberStyles.AllowTrailingWhite
,使其能够容忍空白)。通过文档说明,文件中的十六进制值不需要任何类型的前缀,例如“F0D0C0”可以工作。@马特·柯蒂斯:作为VS macros的新手,能否添加宏所在位置的完整路径。我尝试了工具->宏…->宏IDE->(类视图)MyMacros->EnvironmentEvents,但似乎不起作用。那么,全球化的界线究竟是在哪里添加的呢?非常感谢@WesMiller我想我只是按照supercat答案顶部的说明来做的。我记不起细节了,但我认为这对我来说是可行的(使用VS2010,它可能会在另一个版本中转换。)@MattCurtis终于让它起作用了。结果发现MyMacros RecordModule中存在生成错误。最终,这些问题得到了解决,然后经过长时间的努力,我发现我必须将文件名放在字符串中,而不是直接放在IO.File.ReadAllText中。不知道为什么。我有一个驱动器号,X;,映射到我的VS2008\Projects目录。尝试使用真正的C:…\VS2008\Projects\。。。。文件名在ReadAllText()中作为字符串,但这也不起作用。也许和道路上的空间有关?无论如何,将路径分配给字符串var修复了它。@MattCurtis-另外,我是否正确地认为bgcolor文件中的颜色字符串是BGR,而不是RGB。0000FF给了我一个坚实的红色背景。顺便问一下,我有没有感谢你让我走上了正确的道路? Sub handleColorSettings() Handles SolutionEvents.opened, DocumentEvents.documentopening Dim myColor As UInt32 myColor = &HC0FFFF Try myColor = UInt32.Parse(IO.File.ReadAllText(DTE.Solution.FullName & ".bgcolor.txt"), Globalization.NumberStyles.AllowHexSpecifier) Catch ex As Exception End Try CType(DTE.Properties("FontsAndColors", "TextEditor").Item("FontsAndColorsItems").Object, EnvDTE.FontsAndColorsItems).Item("Plain Text").Background = myColor End Sub