[原文作者]: Beth Massi

[原文链接]:  Visual Studio Tip of the Day - Let's Build an Add-In

我已经开始使用Visual Studio 创建一些Add-In的工程, 这的确是一个比较容易的过程. 真正值得高兴的是,我们不需要去单独安装SDK 去创建Add-in工程,这已经集成在Visual Studio. 我之前写过一个从Sararss feed浏览他的文章的程序.现在我们看看怎么用Visual Studio 2008实现的. 你可以从这里下载代码.

首先我们添加一个新的工程到你的项目中, Add --> New Project, 展开 "Other Project Types"选择”Extensibility” 然后选择”Visual Studio Add-In”.

这会打开一个向导帮助你配置一些你的add-in程序.第一步是选择语言”Create an Add-in using Visual Basic”, 进行到下一步.

下一步选择add-in程序的宿主.在这个程序中我们选择 Visual Studio 2008 Macros”,因为我只想让这个程序起运并显示在工具菜单栏上.

再下一步是Add-in程序的名字和描述. 我们把名字和描述改成 Visual Studio Tip of the Day".

下一步,向导会问我们怎么样去起运Add-in程序, 在这个程序中我们需要在Visual Studio打开的时候载入,并且提供一个在工具栏上的菜单.选择相应的选项,进行到下一步.

最后一步,向导会我们是否需要一个”About”,我们会跳过这一步, 结束向导.

一个新Add-in工程会被加入到你的项目中.  然后打开Add-in工程的属性页,选择”Compile”, 进入”Advanced Compile Options…”,Target Framework改成 .NET Framework 3.5

我们需要添加引用到我们上文提到的(SaraRssViewer) 工程, 现在我们已经有了引用并且配置好了target framework,打开Connect.vb 文件,” OnStartUpComplete”方法中我们会加入代码去载入窗体.

Public Sub OnStartupComplete(ByRef custom As Array) _

  Implements IDTExtensibility2.OnStartupComplete

 

    Dim frm As New SaraRSSViewer.Form1

    frm.Show()

End Sub

当你从工具菜单选择我们的Add-in的时候, 这个程序会被运行, 我们需要把同样的代码加入Exec方法.

Public Sub Exec(ByVal commandName As String, _

                ByVal executeOption As vsCommandExecOption, _

                ByRef varIn As Object, ByRef varOut As Object, _

                ByRef handled As Boolean) _

           Implements IDTCommandTarget.Exec

 

    handled = False

    If executeOption = vsCommandExecOption.vsCommandExecOptionDoDefault Then

        If commandName = "MyAddin1.Connect.MyAddin1" Then

 

            Dim frm As New SaraRSSViewer.Form1

            frm.Show()

 

            handled = True

            Exit Sub

        End If

    End If

End Sub

 

然后我们按F5运行我们的程序, 这样你就可以看到我们的Add-in程序运行的效果,

你也可以自己定制你的菜单名,OnConnection方法中,定义Command变量,第三个参数是显示菜单名,第四个是改变tolltip.

Dim command As Command = _

    commands.AddNamedCommand2(_addInInstance, _

                              "MyAddin1", _

                              "Tip of the Day", _

                              "Display the Visual Studio tips of the day", _

                              True, 59, Nothing, _

                              CType(vsCommandStatus.vsCommandStatusSupported, Integer) + _

                              CType(vsCommandStatus.vsCommandStatusEnabled, Integer), _

                              vsCommandStyle.vsCommandStylePictAndText, _

                              vsCommandControlType.vsCommandControlTypeButton)

当我们编译Add-in工程的时候,会把.addin 文件添加到Visual Studio 2008\Addins\文件夹下面. 通过这个例子,我们可以看创建一个Add-in程序的确很简单.你也可以一些尝试其他的例子,比如OfficeAdd-in等等.

在以后的文章中,我会写一些关于如何把Add-in程序部属到其他机器的方法.