如何在VS2017中用C#创建SQL Server Management Studio 17的扩展?

时间:2017-11-11 16:12:37

标签: visual-studio-2017 ssms vs-extensibility ssms-2017 ssms-addin

我从Microsoft Docs跟随来自Create your first extension: Hello World example的简单Hello World示例,为SSMS 2017构建扩展

  1. 从可扩展性项目模板

  2. 创建VSIX项目
  3. 在项目中更改了“启动外部程序”>属性>调试到 C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\ManagementStudio\Ssms.exe

  4. 在命令行参数中添加-S (localdb)\MSSQLLocalDB -d sampleDB -E
    它需要指定servername / database来运行SSMS.exe。

  5. 使用添加新项目添加自定义命令
  6. 运行项目
  7. 如果步骤#2& #3没有执行,它可以在Visual Studio中正常工作,但SSMS没有任何反应,尽管它启动了SSMS。

    DId我遗漏了一些东西,或者为SSMS创建加载项有什么限制吗?

2 个答案:

答案 0 :(得分:3)

首先,您需要在source.extension.vsixmanifest文件中声明SSMS支持:

  <Installation>
    <InstallationTarget Id="ssms" Version="[14.0, 14.0]" />
  </Installation>

然后我不认为VS可以自动安装你的SSMS扩展。因此,请手动运行.vsix文件。

答案 1 :(得分:2)

你的第一位是正确的,但在你设置之前还有几个步骤要做:

  1. 您需要告诉Visual Studio将扩展(在构建时)复制到 SSMS扩展文件夹,以便SSMS可以在启动时加载它 起来。
  2. 您需要告诉SSMS跳过其内部扩展验证 因为它不会加载任何非白名单的扩展名 SSMS团队。
  3. 我在CodeProject创建的一篇文章中详细解释了这个过程。您可以在以下链接中找到完整的教程: https://www.codeproject.com/Articles/1243356/Create-Your-Own-SQL-Server-Management-Studio-SSMS