在Visual Studio中部署SQLCLR 如何覆盖自动生成的发布脚本
环境信息
- Microsoft SQL Server 2019 15.0.2000.5
- Microsoft Visual Studio Community 2019 Version 16.11.2
- Microsoft .NET Framework Version 4.8.04084
- SQL Server Data Tools 16.0.62107.28140
解决方案
方案1:指定VS使用自定义部署脚本
- 右键你的SQL Server数据库项目,选择「属性」
- 切换到「部署」选项卡
- 找到「部署脚本」配置区域,勾选「使用自定义部署脚本」
- 点击浏览按钮,选中你已编写完成的可正常运行的部署脚本文件
- 保存项目配置,后续发布时VS会直接调用你指定的脚本执行,不会生成默认部署脚本
方案2:关闭自动生成部署脚本功能,仅使用预部署脚本
有两种配置方式可按需选择:
仅跳过指定CLR程序集的自动部署逻辑(更灵活)
如果你只需要替换部分程序集的创建脚本,不需要关闭全部自动部署能力:
- 在解决方案资源管理器中找到对应CLR程序集的节点
- 右键该程序集选择「属性」
- 在属性面板中将「包含在部署中」选项设置为
False - 将你自行编写的该程序集创建语句添加到已验证可用的预部署脚本中
- 保存配置后发布,VS会跳过该程序集的自动生成创建语句逻辑,按预部署脚本的逻辑执行
完全关闭所有自动部署脚本生成
如果你需要完全接管部署流程,仅执行自己写的预部署脚本内容:
- 右键你的SQL Server数据库项目,选择「属性」
- 切换到「生成」选项卡
- 取消勾选「生成部署脚本(.sql)」选项
- 保存配置后,发布流程只会执行你配置的预部署、后部署脚本内容
调试兼容说明
以上所有配置都不会影响CLR代码调试能力,只要项目Debug配置保留了调试符号生成,且「调试」选项卡中配置了正确的目标SQL Server连接,即可正常进行CLR断点调试。
内容的提问来源于stack exchange,提问作者stackunderflow
相关产品推荐
相关产品推荐

