我正在编写一个扩展,有时在后台运行一个相当长的批处理作业,并且需要向用户提供其实际工作的合理指示.
如果可能的话,最好使用VS2012已经使用的加载弹出/ ialog,例如"准备解决方案"对话框.有谁知道如何从扩展名创建该弹出窗口的实例?
如果没有,有什么好的选择吗?能够显示状态字符串和进度条将是更可取的.
我正在开发一个Visual Studio扩展,当用户在当前解决方案中添加,删除或重命名文件时,它应该监听事件.
这个问题的答案指出,VS提供了用于通过DocumentEvents接口监听文档事件(如保存,打开和关闭)的基础结构.例如:
Dte.Events.DocumentEvents.DocumentSaved
是否有类似的事件可以让我听取用户添加/删除/重命名文档?
我有一个Visual Studio扩展的解决方案.此扩展应该适用于自VS2010以来的任何VS版本.那是因为我使用的是VS 2010 SDK.我做了一些黑客攻击,将我的项目绑定到VS2010 SDK程序集和目标,无需安装SDK即可运行 - 感谢Aaron Marten的详细指南.我可以成功构建我的扩展的vsix并在任何VS中安装它.尼斯.
但我也想用F5调试我的扩展.我希望不是在VS2010中,而是在我的情况下在其他一些VS-VS 2015中.我甚至安装了VS 2015 SDK.但它显然不起作用.作为VS2010 SDK的目标应该部署扩展内置到VS2010实验实例中.
所以问题是:
如果扩展本身使用VS2010 SDK,如何使用F5设置项目来调试VS2015中的vsix扩展?
可能我需要使用VS2015 SDK中的一些目标/任务但是哪些以及如何?
vsx visual-studio visual-studio-sdk vsix visual-studio-extensions
是否可以在未安装Visual Studio的生成服务器(TeamCity代理)上生成Visual Studio 2015扩展项目?我们需要安装哪种SDK?
目前,我们收到以下错误消息:
错误MSB4019:找不到导入的项目“ C:\ Program Files(x86)\ MSBuild \ Microsoft \ Portable \ v4.6 \ Microsoft.Portable.CSharp.targets”。确认声明中的路径正确,并且文件在磁盘上。
因此,肯定缺少某种SDK。
msbuild teamcity visual-studio visual-studio-sdk visual-studio-2015
我无法在最简单的 VSIX 项目中调试最简单的 VS 包。
重现步骤:
创建 VSIX 项目:文件 / 新建 / 项目 / 扩展性 / VSIX 项目
添加 Visual Studio 包:在解决方案资源管理器中右键单击项目节点,然后选择添加/新项目/扩展性/Visual Studio 包
打开新创建的包文件 ( VSPackage1.cs) 并在第 68 行,即 的第一行处放置一个断点Initialize(),base.Initialize()
按F5开始调试
这将启动 Visual Studio 2015 的实验性实例,并安装了包(在Tools / Extensions and Updates... 中确认),但断点被禁用:
上述步骤来自index.html新创建的 VSIX 项目的入门指南 ( ),因此它应该有效。
附加信息:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe和命令行参数设置为/rootsuffix Expdebugging visual-studio visual-studio-sdk vsix visual-studio-2015
如何从Visual Studio 2010扩展中获取默认项目创建目录?默认情况下,此目录为:
C:\Users\<username>\Documents\Visual Studio 2010\Projects
我猜这是通过工具 - >选项窗口完成的,但我不知道如何通过SDK获得此功能.
乍一看,以下看起来应该让我接近:
DTE2 dte = CType(GetService(typeof(SDTE)), DTE2);
Object props = dte.Properties("Projects and Solutions", "General");
但是我收到以下错误:
System.Runtime.InteropServices.COMException was unhandled by user code
ErrorCode=-2147352565
Message=Invalid index. (Exception from HRESULT: 0x8002000B (DISP_E_BADINDEX))
c# visual-studio-2010 visual-studio-sdk visual-studio-2010-sp1 visual-studio-extensions
这里的Microsoft链接列出了我们可以使用的三种方法.
但是我们如何获得当前的命名空间?我看到有一个类似的问题,但答案是使用宏,它不能解决这个具体问题.
NameSpace()做这样的事情:
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
    <CodeSnippet Format="1.0.0">
        <Header>
            .
            .
        </Header>
        <Snippet>
            <Declarations>
                <Literal>
                    <ID>namespace</ID> 
                    <Function>NameSpace()</Function>                     
                </Literal>
            </Declarations>
            <Code Language="csharp">
                <![CDATA[
                    $namespace$
                ]]>
            </Code>
        </Snippet>
    </CodeSnippet>
</CodeSnippets>
c# visual-studio-2010 visual-studio-2008 code-snippets visual-studio-sdk
当然,很有可能在TFS中创建工作项,获取工作项列表等.
除此之外,我们还需要具备允许用户为各种文件类型创建自己的工作项模板的功能.
TFS客户端API是否能够将工作项模板上载到TFS服务器?
我创建了一个与自定义项目类型相关联的自定义项目模板.该解决方案在很大程度上取决于项目的MPF - Visual Studio 2012框架.
我接下来要做的是覆盖此自定义项目类型的默认"Build"(F6)和"Start without debugging"(ctrl + F6)事件.解决方案本身将部署为VSIX包.
任何帮助表示赞赏.
c# extensibility visual-studio-sdk visual-studio-extensions visual-studio-2012
在C#或VB.Net 中,使用 Visual Studio Package,我想为 a 分配一个自定义键盘快捷键CommandBarButton,例如Ctrl + E + R,然后,当按下时,关联的CommandBarButton应该调用它的Execute方法(我想) .
我怎么能做到?。
(请避免上面的问题,该问题已得到解答。)
实际上我使用的是vsct文件,然后我的键绑定是这样的:
<KeyBindings>
  <KeyBinding guid="guidMainCmdSet" id="cmdidMyCommand" editor="guidVSStd97" 
              mod1="Control" key1="E" 
              mod2="Control" key2="R"/>
</KeyBindings>
MSDN解释说这guidVSStd97是全局的,它似乎影响到 IDE 的所有部分:
https://msdn.microsoft.com/en-us/library/bb165973%28v=vs.90%29.aspx
要在全局范围内定义键绑定,请使用 guidVSStd97 的编辑器 ID 值。
我的扩展程序适用于代码窗口的选定文本,因此很奇怪,例如在解决方案资源管理器中,或者在加载任何项目时,我都可以按下热键。
然后,我希望只能在Code Window Editor 中按该热键 (Ctrl+E+R) 。
我的问题是:
代码窗口编辑器的编辑器 ID 是哪个?
额外要求:
我需要一个MSDN参考来查看更多相关的编辑器 ID,我找不到任何关于它的信息。