VS2013 AddIn进入VS2015 VSPackage:如何创建ToolWindow2

时间:2016-03-10 10:08:32

标签: add-in vsix vspackage

任何人都可以指导我如何将加载项转换为VSPackage扩展而无需在VSIX中重新创建/复制所有内容?

我有一个支持VS2010到VS2013的插件。我把所有东西都放在.sln中。我想将.addin迁移/创建.vsix以解决VS2015的兼容性问题。经过一些研究,我发现在IDTCommandTarget.Exec方法中编写的代码必须运行到我的自定义命令类vsix项目...

所以,我在同一个解决方案中创建了一个新的.vsix项目。将.addin项目的引用添加到.vsix项目中,我可以加载我的addin项目的初始控件,如下所示......

enter image description here

但是根据代码,我想在双击我的树节点时创建CreateToolWindow2但是我收到了以下错误(null AddInInstance)......

enter image description here

任何人都可以指导我如何创建一个AddIn类实例来创建ToolWindow2?

2 个答案:

答案 0 :(得分:1)

这不是完成此操作的方法。您创建.VSIX项目,然后添加自定义命令,并将旧插件的Exec方法中的代码/逻辑添加到自定义命令MenuItemCallback方法。

注意,您不再需要以编程方式创建菜单/命令,工具栏等.VSPackage通过.VSCT文件具有完全不同(并且更有效的方式)。

FAQ: Converting Add-ins to VSPackage Extensions

答案 1 :(得分:1)

要将加载项转换为包不容易或无关紧要,您需要使用.vsct文件来创建菜单,工具栏,命令等。

关于工具窗口:

包的常用方法是:

HOWTO:在Visual Studio包中使用ToolWindowPane类创建一个工具窗口 http://www.visualstudioextensibility.com/articles/packages/

但是您可以像加载项一样执行此操作: HOWTO:在Visual Studio包中创建一个没有ToolWindowPane类的工具窗口 (同一环节)

关于将加载项迁移到包时,不要“复制所有内容”,请参阅我的帖子:

Strategies migrating from Visual Studio add-ins to packages