如何为 SSMS 2019 (v18) 创建扩展

2024-05-03

SQL Server Management Studio 18 RC1 https://learn.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-2017于 2018 年 3 月 28 日上市

这个问题已经被问过对于 SSMS 17 https://stackoverflow.com/q/47240020/1366033,但是在为不同版本的 SQL Server Management Studio 创作扩展时,会有细微的差异。

在 SSMS 2019 中运行 Hello World 应用程序有哪些步骤?


以下是完整的步骤,改编自 Stefan Timovski 的文章如何创建 SQL Server Management Studio 18 (SSMS) 扩展 https://www.codeproject.com/Articles/1377559/How-to-Create-SQL-Server-Management-Studio-18-SSMS

  1. Install 视觉工作室 2017 https://visualstudio.microsoft.com/downloads/ with 扩展工具包

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

  2. 创建新的扩展项目

    Go to File New Project (Ctrl + Shift + N)

    选择可扩展性 > VIX 项目

    如果您没有这些选项,请确保您已执行步骤 1

  3. 添加新命令项

    Add a new item (Ctrl + Shift + A)

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

  4. 在 Visual Studio 中调试

    The command file will add a menu item to Tools > Invoke Command1. If you hit debug, Visual Studio will launch a Debuggable instance, fully loaded with your current extension. Hit play or hit F5

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

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

    这是工作消息框

  5. 获取 SSMS 的文件路径

    SSMS 18 的默认安装路径应为:

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

    If it's not there, to identify the startup location of any app, you can Shift + Right Clicking on the app icon and select "Open file location"

  6. 将启动设置为 SSMS

    Open up the project properties in VS (Alt + Enter)

    Go to Debug > 启动外部程序并粘贴到路径中

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

  7. 将 VSIX 部署设置为 SSMS

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

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

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

  8. 设置权限

    最后,为了以编程方式调用 C 驱动器上的任何应用程序,您需要管理员权限,因此您需要在管理员模式下打开 Visual Studio。您可以通过右键单击该应用程序来完成此操作,如下所示

  9. 点击运行并调试

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

进一步阅读

从历史上看,每个扩展都需要列入白名单,但根据SSMS 18 的发行说明 https://learn.microsoft.com/en-us/sql/ssms/release-notes-ssms?view=sql-server-2017#180-preview---cumulative-changelog-through-rc1,一大变化(更好)是

开发 SSMS 扩展不再需要包 ID
过去,SSMS 选择性地仅加载众所周知的包,因此要求开发人员注册自己的包。这已不再是这种情况。

由于 SSMS 18 使用Visual Studio 2017 独立外壳,许多扩展开发人员文档都可以在Visual Studio 扩展文档 https://learn.microsoft.com/en-in/visualstudio/extensibility/extensibility-hello-world?view=vs-2019

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何为 SSMS 2019 (v18) 创建扩展 的相关文章

  • [SqlException (0x80131904) 的问题:无效的对象名称“dbo.TableName”。]

    我在 google 和 stackoverflow 中查找 但没有找到答案 如何通过 VS 2010 中的连接字符串连接到我的数据库表
  • Oracle 删除约束级联等效于 Sql Server

    在Oracle中 删除约束PK SAI我使用语法 ALTER TABLE SAISIE DROP CONSTRAINT PK SAI CASCADE SQL Server 中与此等效的是什么 您正在考虑与实际 DELETE 语句相关的 FO
  • SQL Server 大小写/排序规则问题

    今天我在客户数据库中遇到了一个奇怪的情况 SQL Server 2005 数据库排序规则不区分大小写 因此我可以使用任何大小写编写 SQL 查询 没有任何问题 除了一个 一张特定表中的一个特定列称为 DeadZone 如果我这样查询 从表名
  • 实体框架中的批量插入

    我使用批量插入插入大量记录 例如 20K 当我仅插入一个实体时 它会正常工作 但是 当我用来插入多个实体 例如一对多 时 它将仅插入父实体 而不会插入子实体 我的实体和代码 Customer cs public class Customer
  • SQL Server Like 查询不区分大小写

    Query SELECT from Table 2 WHERE name like Joe Output 1 100 Joe 2 200 JOE 3 300 jOE 4 400 joe 为什么不区分大小写 Problem 查询不区分大小写
  • 合并sql中的列

    我正在使用 SQL Server 2017 有一个存储过程 其中我有一个带有连接的简单选择 例如 SELECT p legacyKey AS JobNumber p Name AS JobName G Label AS DesignStat
  • 错误:不支持的 PIVOT 列类型:文本

    我正在尝试执行 PIVOT 但出现错误 我正在尝试查看哪些患者接受了多次间隔治疗 该列是文本类型 我尝试在查询中将列类型转换为 VARCHAR MAX 但仍然收到错误 这是我的代码 SELECT patientname IntervalNa
  • 让 Hibernate 和 SQL Server 与 VARCHAR 和 NVARCHAR 良好配合

    我目前正在大型数据库的某些表中启用 UTF 8 字符 这些表已经是 MS SQL 类型 NVARCHAR 此外 我还有几个使用 VARCHAR 的字段 Hibernate 与 JDBC 驱动程序的交互存在一个众所周知的问题 例如 参见在 h
  • 是否可以使用 Dapper 流式传输大型 SQL Server 数据库结果集?

    我需要从数据库返回大约 500K 行 请不要问为什么 然后 我需要将这些结果保存为 XML 更紧急 并将该文件通过 ftp 传输到某个神奇的地方 我还需要转换结果集中的每一行 现在 这就是我正在做的事情 TOP 100结果 使用 Dappe
  • 使用条件 SQL 统计每月汇总记录

    我有一张桌子 我们就叫他们桌子吧SUMMARYDATA NIP NAME DEPARTMENT STATUSIN STATUSOUT TOTALLOSTTIME A1 ARIA BB 2020 01 21 08 06 23 2020 01
  • 使用 MS Access 链接表连接到 SQL Server 后端时是否可能发生 SQL 注入

    我一直在对此进行一些研究 但到目前为止还是一片空白 情况是这样的 我正在开发一个链接到 SQL Server 后端的 MS Access 前端 我在某种程度上使用 Access 中的链接表 表单访问 SQL DB 这样 当用户更新表单中的值
  • 在对象数组内的特定 JSON 值上创建索引

    假设我的表中有一个 varchar 列 其结构如下 Response DataArray Type Address Value 123 Fake St Type Name Value John Doe 我想在 DataArray 数组元素的
  • SQL Server 2008 错误 233

    我正在使用以下 sql 脚本在 SQL Server 2008 中创建新登录名 CREATE LOGIN xyz WITH PASSWORD xyz DEFAULT DATABASE master DEFAULT LANGUAGE us e
  • 一个表可以有多个主键吗?

    我现在很困惑 也许你可以帮助我更好地理解这个问题 即一个表可以有两个主键 如果是 那么如何 如果没有 那为什么 您询问是否可以有多个主键field你当然可以 您只能有一个主键 但它可以包含唯一标识行所需的任意数量的列 创建表时使用类似这样的
  • 如何拥有引用另一个表的检查约束?

    我在 SQL Server 2008 数据库中有以下表 tblItem 其中有一个ItemID field 好项目 它还有一个 ItemID 字段 并且有一个指向 tblItem 的外键 tblBadItem 它也有一个 ItemID 字段
  • SQL Server 2008。允许远程连接吗?

    我在 Windows XP Pro 机器上安装了 SQL Server 2000 和 2008 我可以在本地连接到两个数据库实例 从另一个机器 Windows 7 机器 中 我可以连接到第一个机器上的 SQL 2000 实例 但无法使用本地
  • 没有提示指令的直连接中表的顺序是否会影响性能?

    所有基于 SQL 的 RDBMS 10 年前的版本 直接连接查询 没有提示指令 中的表顺序是否会对最佳性能和内存管理产生影响 听说最后一个join应该是最大的表 您的数据库的查询优化器如何处理这种情况 回答你的问题 是的 表的顺序在连接中有
  • BULK INSERT 返回错误“访问被拒绝”

    运行批量插入时 BULK INSERT MyDatabase dbo MyTable FROM Mylaptop UniversalShare SQLRuleOutput csv WITH FIRSTROW 2 FIELDTERMINATO
  • 更改表添加列并在同一条件 IF 语句中更新新列

    我正在尝试添加列并在同一 if 语句中更新它 BEGIN TRAN IF NOT EXISTS SELECT 1 FROM sys columns WHERE Name N Code AND Object ID Object ID N Te
  • 需要在 SQL Server 中透视字符串值

    我有一个包含值的表 描述为 Occupation String Name String Developer A Developer B Designer X Coder Y Coder Z 我需要数据透视格式的值 Designer Deve

随机推荐

  • 如何从路径和文件名中删除非法字符?

    我需要一种强大且简单的方法来从简单字符串中删除非法路径和文件字符 我使用了下面的代码 但它似乎没有做任何事情 我错过了什么 using System using System IO namespace ConsoleApplication1
  • 使用 dbutils 在 Databricks 中上传后从目录中删除文件

    StackOverflow 的一位非常聪明的人帮助我将文件从 Databricks 复制到目录中 复制文件 https stackoverflow com questions 54007074 how to truncate and or
  • 从私人 nuget feed 下载所有包

    我想从我的私人 nuget feed 下载所有版本的所有软件包 就是这样 我在使用 powershell bash 包管理器等方面没有任何问题 我无法使用占位符项目 引用所有包并复制我的缓存 因为我需要所有版本 任何想法 我正在与一家私人
  • XPath:默认为“节点 A”,如果“节点 B”不为空,则选择“节点 B”

    我需要创建一个执行以下操作的 XPath 表达式 默认返回 NodeA 内的元素 如果 NodeB 不为空 则返回 NodeB 内部的元素 下面是一些示例 XML 以便可以清楚地看到我的目标结构 我使用的是 MS InfoPath
  • 按钮和窗口之间的空间

    我这里有这段代码 其想法是在主窗口中在文本区域旁边有两个按钮 但我尚未添加 在尝试使用 GridBagLayout 并在此过程中扯掉我的头发后 我决定不使用布局并在不可调整大小的窗口内手动放置按钮 import java awt impor
  • Android Http url 连接在 getInputstream 抛出文件未找到异常

    我正在尝试将一些 json 字符串发布到休息服务器 但在获取输入流时遇到 java 文件未找到异常 这是我的代码 package com muzima view sample activities import javax servlet
  • 如何阻止 HTML 输入字段中的特殊字符? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我只是想问一下如何在html输入字段中阻止 等特殊字符 为什么不使用html5呢
  • 使用字符串函数查找周期字符串

    我正在寻找一种方法来检查字符串是否是周期性的或不使用 JavaScript 要匹配的示例字符串可以是11223331122333 然而 10101不应该匹配 来自 python 我使用了 RegEx 1 但速度相当慢 有没有任何字符串方法可
  • 如何使用 Android 加速计?

    我正在尝试构建一个应用程序来读取手机上加速度计的值 该应用程序仅支持 Android 2 1 如何使用 2 1 兼容代码读取加速度计 从这个开始 public class yourActivity extends Activity impl
  • 正则表达式或多个/单个字符

    我正在动态地制作一个正则表达式 我希望它匹配以下内容 lem le m levm lecm 基本上是 lem 但在 m 之前它可以有任意数量 或任何字符中的任何一个 现在我有 le 0 m 你可以在以下位置看到它http regexr co
  • 谷歌分析实时不工作

    我正在使用这段代码来使用Google Analytics为了获取实时信息和应用程序评论 代码位于 AppDelegate 中 GAI sharedInstance trackUncaughtExceptions YES GAI shared
  • 如何使用Android读取Service中的加速度计数据

    通常 在 Android 中 我们通过重写 OnSensorChanged 函数来读取 Activity 中的加速度计数据 我很好奇我们如何在 服务 中做到这一点 谢谢 文森特 实际上OnSensorChanged SensorEvent
  • 查找使用连接的位置 Excel VBA

    我有大量需要优化的 Excel 2013 工作簿 每个工作簿都有多个工作表和多个数据连接 我正在寻找一种快速列出的方法 连接名称 连接字符串 使用连接的位置 工作表名称或范围很有用 我可以在连接对话框中看到所有这些信息 但无法以编程方式跟踪
  • 从 SQL Server 中的字符串中提取子字符串

    我需要从字符串中提取子字符串的一部分 如下所示 YY 12 Yellow ABC WSA Thisone A SS 4MON DHHE A A 我需要按如下方式提取字符串 Yellow Thisone DHHE 你可以使用这样的东西 dec
  • 未找到“Guzzle\Http\Client”类

    我正在尝试在 sitepoint 上跟进本教程http www sitepoint com guzzle php http client http www sitepoint com guzzle php http client 我这里是一
  • 如何取消 boost asio io_service 帖子

    如何取消已发布的回调 getIoService gt post boost bind MyClass myCallback this 并保持其他发布的回调不变 问题是我有一些对象从不同线程接收事件 并将它们发布到 ioservice 以便处
  • 当 SwingWorker 在后台工作时,对话框没有响应

    基本上我得到了一个以 main 方法作为入口点的 JFrame 在这个主要方法中 程序必须下载一些图像 为了通知用户程序将随时启动 我想显示一个简单的对话框 如果我将对话框设置为模式 我必须在启动程序后关闭它才能触发下载 如果我将其设置为非
  • 如何判断当前运行的 Apple Watch 尺寸/尺寸是 38 毫米还是 42 毫米?

    我们知道Apple Watch有两种屏幕尺寸 38mm和42mm 这WKInterfaceDevice类提供了一个名为的可读属性screenBounds 我写了一个扩展WKInterfaceDevice 尝试添加一种方法来检测当前设备类型
  • 观察 CALayer 中的动画属性变化

    我有一个CABasicAnimation动画 a 的属性CALayer e g bounds origin 我希望能够观察属性随时间的变化 但还没有真正找到一种 100 有效的方法 我尝试使用 KVO 键值观察 presentationLa
  • 如何为 SSMS 2019 (v18) 创建扩展

    SQL Server Management Studio 18 RC1 https learn microsoft com en us sql ssms download sql server management studio ssms