[原文作者]: Beth Massi
[原文链接]: Visual Studio Tip of the Day - Let's Build an Add-In
我已经开始使用Visual Studio 创建一些Add-In的工程, 这的确是一个比较容易的过程. 真正值得高兴的是,我们不需要去单独安装SDK 去创建Add-in工程,这已经集成在Visual Studio中. 我之前写过一个从Sara的rss 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程序的确很简单.你也可以一些尝试其他的例子,比如Office的Add-in等等.
在以后的文章中,我会写一些关于如何把Add-in程序部属到其他机器的方法.
打印 | 张贴于 2007-12-25 16:06:00 | Tag:Beth Massi的blog
留言反馈
其实用Add-in一个很好的方面,就是可能一些方便我们使用vs的工具,或者某一方面的扩展可以在vs或者office中体现出优势来
很郁闷,我记得3年前,为解决这个问题,我只好新建了一个项目。看起来VS2005和VS2008已经解决了一些。需要先把AddIn删掉,然后重启VS,然后再重新部署。
挺烦的。
可能Visual studio以后会提供更多的外部开发接口