创建 Visual Studio 工具窗口 - VsAddin 或 VsPackage
简单的问题 - 我找到了两种向 Visual Studio (2008) 添加工具窗口的方法:创建插件或创建包。
(插件:http://www.codeproject.com/KB/dotnet/vstoolwindow.aspx )
(包:http://msdn.microsoft.com/en-us/library /bb165051.aspx)
“正确”的方法是什么?
Simple question - I found two ways to add a tool window to Visual Studio (2008): create an addin or create a package.
(Addin: http://www.codeproject.com/KB/dotnet/vstoolwindow.aspx)
(Package: http://msdn.microsoft.com/en-us/library/bb165051.aspx)
What's the "right" way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你可以做任何一个,而我都做了。 在某些方面,插件更容易一些,但它们也有一些恼人的缺点。
插件:
VSPackages:
You can do either, and I've done both. In some ways, addins are a bit easier, but they suffer from some annoying drawbacks.
Add-in:
VSPackages:
我认为 280Z28 在 VS2010 之前是完全正确的。 但现在 VS2010 和 VS012:
此外,VS2010 支持另一种可扩展性:这些是 MEF 扩展,它们是仅在 IDE 的特定事件(如文本编辑器事件)时触发的轻量级插件。 一个示例是 FixMixedTabs 扩展。
只需创建一个 VSPackage 空包(没有菜单、命令等)并将其复制到主类中以创建一个 VSPackage,该 VSPackage 基本上在存在活动解决方案时加载,并且只需获取对 DTE2 的引用即可>。 这样你就可以将它用作插件。
I think 280Z28 was perfectly correct prior VS2010. But now VS2010 and VS012:
Moreover VS2010 supports another kind of extensibility: those are MEF extensions, that are lightweight plugins that trigger only at specific events of the IDE, like text editor events. An example is FixMixedTabs extension.
Just a create a VSPackage empty package (no menus, commands, ...) and copy this in the main class to create a VSPackage that basically loads when there's an active solution and just get a reference to the
DTE2
. In this way you can just use it as an Add-in.如果您只是创建一个简单的工具窗口,那么我建议您使用插件路线。
包和加载项都是扩展 Visual Studio 的方法。 一般来说,它们具有相同的功能。 包的功能更强大,可以更深入地集成到 Visual Studio 中。 但这种更深入的集成会带来成本,包括更长的启动时间和安装程序。
插件被设计为更轻量级的扩展机制。 更短的启动时间和更容易的安装。
如果您所做的只是工具窗口与编辑器和代码模型的基本交互,那么加载项是最佳途径。
If you are just creating a simple tool window then I suggest going the Add-in route.
Both Packages and Add-Ins are ways of extending Visual Studio. Generally speaking they have the same functionality. Packages are a bit more powerful and allow deeper integration into Visual Studio. But that deeper integration comes with a cost including bigger ramp up times and installation procedures.
Add-ins are designed to be a more light weight extension mechanism. Smaller ramp up time and easier installation.
If all you are doing is tool window with basic interaction of the editor our code model then add-in is the best route.