我用工具窗口开发Visual Studio包.工具窗口的UI基于WPF.在我的用户控件中,我想使用与VS设计相对应的当前Visual Studio主题颜色.
因此我的问题是如何才能发现Visual Studio主题颜色已被更改?
提前致谢.
StyleCop要求对C#文件的内容进行特定的排序.例如,应该在方法和公共声明应该在私有之前声明字段.
使用Visual Studio扩展将这些内容自动移动到该顺序中会很有用.
是否存在良好的扩展(我发现CodeSorter,但反馈表明它非常错误)?或者是否有任何扩展或快捷方式可以减少手动重新排序此内容的痛苦?
c# coding-style stylecop visual-studio-2010 visual-studio-extensions
我有一个Visual Studio包,它通过启动一个外部进程(使用System.Diagnostics.Process)并通过标准输入/输出与它进行通信来完成它的一些工作.目前,我有.exe硬编码的路径,这显然不适用于实际部署扩展..exe使用扩展程序打包和分发的正确方法是什么?(而且,相关的,一旦我这样做了,我如何以编程方式发现已安装.exe文件的路径.)最好我想把它放到.vsix文件中,这样安装很容易.
编辑:我已将我的代码的相关部分放在BitBucket上(对于使用Roslyn的其他人可能有用):roslyn_process,以便更好地了解我想要做的事情.此代码使用实现AbstractProcessHandler和使用单独的进程设置Visual Studio扩展之间的通信RoslynProcess.后者随时了解Visual Studio中代码文件的修改以及正在查看的代码文件,因此它能够使用最新信息进行分析,尽管不能作为Visual Studio扩展运行,这将限制Roslyn正在编辑所有代码.
编辑2:使用这个答案,我可以得到扩展名的目录.我可以source.extension.vsixmanifest通过将其作为"自定义扩展类型"类型添加到内容列表中来包含另一个包.然后.exe出现在扩展名的目录中.这似乎是正确的解决方案,虽然获取目录的方式在MSDN中标记为我不应该使用的东西.
看起来这可能是最好的方法,即使它似乎是hackish,在这种情况下,一旦我把一切都工作,我会发布这个作为答案.
我在Web Essentials菜单下看到了我的asp.net项目的这些菜单选项:
Create solution settings
Create color palette
Create markdown stylesheet
Run Code Online (Sandbox Code Playgroud)
Web Essentials的官方网站似乎并不太关注这些选项的作用或原因.有人能给我这么瘦吗?
asp.net visual-studio visual-studio-extensions web-essentials
我正在使用的一些扩展在VS2012下被破坏,因为在某些时候它们通过更改引用库的版本而更新为与VS2013一起使用.在运行时,可能会产生这样的错误:
无法加载文件或程序集"Microsoft.VisualStudio.Shell.12.0,Version = 12.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a"或其依赖项之一.该系统找不到指定的文件.
我看到引用同一个库的多个版本的各种扩展:
<Reference Include="Microsoft.VisualStudio.Shell.Interop" />
<Reference Include="Microsoft.VisualStudio.Shell.Interop.8.0, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="Microsoft.VisualStudio.Shell.Interop.9.0, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
Run Code Online (Sandbox Code Playgroud)其他人发布每个VS版本的扩展.
我想帮助修复这些扩展,但是解决这个问题的正确方法是什么?
我的目标是创建一个“ Visual Studio可扩展性”,将“ Npm install”上下文菜单项添加到package.json文件。
到目前为止,如果我打开一个解决方案,这将非常有用,因为我已经将该[ProvideAutoLoad(Microsoft.VisualStudio.Shell.Interop.UIContextGuids.SolutionExists)]属性添加到Package类。
但是,如果我打开网站(文件->打开->网站...),它将无法正常工作。您有什么主意,如何为每个UI上下文自动加载Package.cs?
编辑:进一步调查后的更多信息:如果将网站另存为解决方案,则会调用“初始化”方法。但是未调用package.json的MenuItem的BeforeQueryStatus。解决方案结构如下所示:
-Solution
-project
-package.json
Run Code Online (Sandbox Code Playgroud)
如果我直接将package.json添加到解决方案中,则会显示上下文菜单项。结构体:
-Solution
-Solution Items
-package.json
-project
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
c# visual-studio visual-studio-extensions visual-studio-2013
我们正在尝试在Visual Studio中扩展文本.我们目前的尝试包括在文本的某些点创建透明的intraline装饰品.
我们偶然发现了这种方法的缺点.即,当给定文本附加了背景分类时,分类会中断,结果如下所示:

我们目前正在研究解决这个问题的可能方法:
但是,这两种解决方案看起来都非常糟糕.
解决这个问题的最佳方法是什么?
vsx visual-studio visual-studio-extensions visual-studio-2012 visual-studio-2013
在Visual Studio扩展(VSIX)解决方案中,我使用Roslyn从当前解决方案加载特定项目:
Project myProject =
this.CurrentComponentModel.GetService<VisualStudioWorkspace>()
.CurrentSolution.Projects
.FirstOrDefault(p => p.Name == "MyProject")
Run Code Online (Sandbox Code Playgroud)
proProct myProject肯定是加载的,但在检查时我看到:
myProject.HasDocuments == false
myProject.Documents is Empty
Run Code Online (Sandbox Code Playgroud)
然而,在Visual Studio中,我可以看到大量文档.
如果我关闭解决方案并从另一个TFS分支打开相同的解决方案,则相同的代码返回:
myProject.HasDocuments == true
myProject.Documents is not Empty
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
c# visual-studio visual-studio-extensions roslyn roslyn-code-analysis
是否可以从命令行禁用 Visual Studio 中的特定扩展,而不是手动启动 Visual Studio 并从工具禁用它?
c# ×6
roslyn ×2
asp.net ×1
coding-style ×1
mpf ×1
stylecop ×1
subprocess ×1
vsix ×1
vsx ×1
wpf ×1