【问题标题】:How to Create an Extension for SSMS 2019 (v18)如何为 SSMS 2019 (v18) 创建扩展
【发布时间】:2019-09-03 19:40:18
【问题描述】:

SQL Server Management Studio 18 RC1 于 2018 年 3 月 28 日可用

这个问题已经被问过for SSMS 17,但是在为不同版本的 SQL Server Management Studio 创作扩展时会有细微的差别。

让 Hello World 应用程序在 SSMS 2019 中运行的步骤是什么?

【问题讨论】:

    标签: sql-server visual-studio-extensions ssms-addin ssms-18


    【解决方案1】:

    这里是完整的步骤,改编自 Stefan Timovski 在How to Create SQL Server Management Studio 18 (SSMS) Extension 上的文章

    1. 使用扩展工具包

      安装Visual Studio 2017

      如果您不确定是否安装了扩展工具包,可以打开 Visual Studio 安装程序并修改当前安装以确保您已安装扩展


    2. 创建新的扩展项目

      转到文件新项目 (Ctrl + Shift + N)

      选择可扩展性 > VIX 项目

      如果您没有这些选项,请确保您完成了第 1 步

    3. 添加新的命令项

      添加一个新项目(Ctrl + Shift + A

      选择可扩展性并仅出于演示目的获取自定义命令

    4. 在 Visual Studio 中调试

      命令文件将添加一个菜单项到工具> 调用Command1。如果您点击调试,Visual Studio 将启动一个 Debuggable 实例,该实例完全加载了您当前的扩展。点击播放或点击 F5

      第一次启动可能需要一分钟,但之后应该会更快

      处理的点击事件位于Command1.cs>Execute,可以添加断点。

      这是有效的消息框

    5. 获取 SSMS 的文件路径

      SSMS 18 的默认安装路径应该是:

      C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\Ssms.exe
      

      如果不存在,要识别任何应用程序的启动位置,您可以Shift + 右键单击​​应用程序图标并选择“打开文件位置”

    6. 将启动设置为 SSMS

      在VS中打开项目属性(Alt + Enter

      转到调试 > 启动外部程序并粘贴到路径中

      删除命令行参数,因为它们不再适用于 SSMS

    7. 将 VSIX 设置为 SSMS

      “扩展”子目录应与 SSMS 位于同一目录中。另外,添加一个带有您的项目名称的额外文件夹,如下所示

      C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\Extensions\VSIXProject1
      

      转到 VSIX > 并选择“将 VSIX 内容复制到以下位置

    8. 设置权限

      最后,为了以编程方式调用 C 盘上的任何应用程序,您需要管理员权限,因此您需要在管理员模式下打开 Visual Studio。您可以通过右键单击这样的应用程序来做到这一点

    9. 点击运行和调试

      快!布拉莫!您的扩展程序现在应该正在运行 SSMS

    进一步阅读

    从历史上看,每个扩展都需要被列入白名单,但根据release notes for SSMS 18,一个很大的变化(更好)是

    开发 SSMS 扩展不再需要包 ID
    过去,SSMS 只选择性地加载知名包,因此需要开发人员注册自己的包。现在已经不是这样了。

    由于 SSMS 18 使用 Visual Studio 2017 隔离 Shell,许多扩展开发者文档可在 Visual Studio Extension Docs 下获得

    【讨论】:

    • 很棒的工作@KyleMit - 我想补充一点,如果你给自己修改C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\Extensions文件夹的权限,你不需要以管理员身份运行
    • 很好的答案,非常感谢!我将补充一点,如果您在 VS 2019 中构建扩展并以 SSMS 18 为目标,请使用 Nuget 包管理器卸载 Microsoft.VisualStudio.SDK 16 并安装 15.x。否则,您会在 ActivityLog.xml 中收到关于无法找到 Microsoft.VisualStudio.Shell.15.0, Version=16.0.0.0 的错误。
    • 非常感谢。我与这个错误战斗了几个小时。你知道如果我在 VS19 和 SSMS19 中做到了,我还需要做这个技巧吗?
    • 任何人都知道或有关于如何在 SSMS V18 /19 的对象资源管理器上实现项目菜单的示例?我找了很长时间,我发现的都是以前版本的 SSMS
    • Fwiw,CodeProject article 的作者有his own SSMS extension on GitHub,以防“真实世界”示例对后续步骤有用。比如他pastes text into the active window here。 YMMV。
    猜你喜欢
    • 2011-12-19
    • 2022-09-28
    • 2021-10-21
    • 2023-03-25
    • 2011-06-26
    • 1970-01-01
    • 1970-01-01
    • 2016-06-12
    • 1970-01-01
    相关资源
    最近更新 更多