如何更新SQL插件以在SSMS 2016中工作?

Reg*_*dit 6 c# sql-server ssms-addin ssms-2016

几年前我写了一个插件来做我想要的SSMS特定的事情.我一直都在使用它,并且经历了每次新版本的SQL服务器破坏插件模型时如何让它再次运行的痛苦.

我现在已经与2014年并排安装了SSMS 2016,但是尽管进行了大量搜索,但我找不到有关如何更新2016年插件的信息,我还没有找到办法.我的插件继续在2014年工作.

为了清楚起见,我的插件使用了实现IDTExtensibility2和IDTCommandTarget的类的通用方法:

public partial class SSMSAddin : IDTExtensibility2, IDTCommandTarget 
{
    /// <summary>Implements the OnConnection method of the IDTExtensibility2 interface. Receives notification that the Add-in is being loaded.</summary>
    /// <param term='application'>Root object of the host application.</param>
    /// <param term='connectMode'>Describes how the Add-in is being loaded.</param>
    /// <param term='addInInst'>Object representing this Add-in.</param>
    /// <seealso class='IDTExtensibility2' />
    public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)
    {
     .
     .
     .  
    }        
 .
 .
 .  
}
Run Code Online (Sandbox Code Playgroud)

加上一个放置在LookInFolders注册表项中列出的位置之一的XML配置文件(.addin),例如

%APPDATA%\Microsoft\MSEnvShared\Addins
Run Code Online (Sandbox Code Playgroud)

显然,SSMS 2016引入了一些变化,使得现有的插件在没有某种重写的情况下将无法工作.此外,它似乎不再使用传统的.addin配置文件,因为其注册表项不再包含旧版本用于查找它的LookInFolders注册表项.我在下面的两个链接问题的第一个中读到,SSMS 2016使用基于Visual Studio 2015 Shell的新插件添加,但我无法找到有关如何使用新界面或更新旧版插件代码的任何详细信息.

注意:有几个相关的SE问题Management Studio 2012的穷人的T-SQL格式加载项是否适用于Management Studio 2016?SQL Server 2016插件无法正常工作,但它们是不同的问题,人们希望使第三方插件工作.这个问题是关于如何更改我自己的插件以使其在SSMS 2016中工作.

Pet*_*fle 4

事实上,.Addin 不再受支持。您需要将 VSIX 项目构建到“C:\Program Files (x86)\Microsoft SQL Server\130\Tools\Binn\ManagementStudio\Extensions[您的扩展名]”中。关于如何扩展 SSMS 2016 的信息并不多,但是:

以下是 VSIX 项目的一些文档:https ://learn.microsoft.com/fr-fr/visualstudio/extensibility/index

该论坛对我帮助很大:https://www.sqlservercentral.com/Forums/1802009/Developing-Extensions-for-SSMS-2016

您不能再使用 Connect.cs。SSMS 和代码之间的链接现在可以使用命令和包,如我发布的第二个链接中所述。

希望有帮助