2013-09-23 75 views
2

我已经创建了非常简单的Visual Studio插件,由JP Booodhoo编写的这篇文章。Visual Studio插件没有显示

http://codebetter.com/jpboodhoo/2007/09/04/macro-to-aid-bdd-test-naming-style/

的插件工作在调试,所以如果我F5在加入溶液,并打开一个解决方案,则插件显示的工具。但是,它不显示何时不调试。即在我部署了插件之后,关闭并重新打开了我的解决方案。

我错过了什么吗?

在部署方面,我也跟着本文中的部署步骤,并将其部署到C:\用户[用户名] \文档\的Visual Studio 2012中\加载项

Alternative to macros in Visual Studio 2012

public void Exec(string commandName, vsCommandExecOption executeOption, ref object varIn, ref object varOut, ref bool handled) 
     { 
      handled = false; 
      if(executeOption == vsCommandExecOption.vsCommandExecOptionDoDefault) 
      { 
       if(commandName == "KinghamExtensions.Connect.KinghamExtensions") 
       { 


        var selection = (TextSelection)(_applicationObject.ActiveDocument.Selection); 
        selection.SelectLine(); 
        if (selection.Text == "") return; 

        var prefix = "public void "; 
        var index = selection.Text.IndexOf(prefix); 
        prefix = selection.Text.Substring(0, index) + prefix; 
        var description = selection.Text.Replace(prefix, String.Empty); 

        selection.Text = prefix + description.Replace(" ", "_").Replace("'", "_"); 
        selection.LineDown(); 
        selection.EndOfLine(); 
        handled = true; 
       } 
      } 
     } 

正如我所说,代码在vs中运行插件时会起作用,但不会显示在工具菜单中。

另外,它不会显示在键盘选项中,例如Git Extensions插件的含义,我无法指定键绑定。

有什么想法?

回答

0

这是很难通过你提供的信息来回答,但首先应该检查下列各项:

你的AddIn应该出现在工具>外接Managger ......

如果您在其之前设置了第一个复选框,那么应该将其加载。

如果不是,并且您收到错误消息,请单击否,否则Studio将重命名已部署的.AddIn文件。 您应该检查您的发布程序集是否位于Assembly元素引用的位置,如下所示:<Assembly>C:\Users[your user name]\Documents\Visual Studio 2012\Projects\MyAddin1\MyAddin1\bin\MyAddin1.dll</Assembly>
in .AddIn文件由Visual Studio部署到您在问题中提到的AddIn文件夹。

如果是,并且错误pesrists,您应该添加一些日志到您的加载项(Windows消息框将执行) 并将其放置到OnConnection方法。错误可能出现OnConnection在IDE尝试加载它时抛出异常,或AddIn文件中的FullClassName元素引用除Connection类以外的其他名称。

如果没有错误,并且OnConnection正常运行,那么它可能是您的代码添加命令时抛出的异常 - 如果您尝试的方式与在尝试中生成的Add-In模板中执行的方式相同/ catch块 - 你需要解决它。

相关问题