在 Visual Studio 中部署 SQLCLR -- 如何覆盖生成的发布脚本

Deploying SQLCLR in Visual Studio -- How to override the generated publish script

微软 SQL 服务器 2019 15.0.2000.5
Microsoft Visual Studio Community 2019 版本 16.11.2
Microsoft .NET 框架版本 4.8.04084
SQL 服务器数据工具 16.0.62107.28140

在使用 Visual Studio 发布 C# CLR 代码时,我想提供自己的脚本来创建一些程序集。在构建操作中,我看到了“预部署”(我已成功使用)和“post-部署”选项,但没有一个仅用于“部署”。相反,VS 生成自己的程序集创建脚本,但失败了。因为我已经写了一个成功的,我想:

我觉得这应该是显而易见的,但如果是的话,我还没有想出正确的搜索词。

通过 VS 而不是 SSMS 进行部署的原因是我可以调试代码。我从函数返回的结果集有时会爆炸。我从MS文档中了解到,只有通过VS部署才能调试。

由于误解了这个过程,我错误地描述了我的问题。我尝试的是两种不同的东西,都不正确。
使用我的预部署脚本,我会:
a) 创建非对称密钥
b) 创建登录
c) 创建用户
d) 授予登录权限
e) 创建程序集
我怀疑如果我没有在我的脚本中使用 CLR 作为程序集名称的前缀,那可能没问题。当生成的脚本随后尝试创建程序集时,它会根据现有程序集(但名称不同)出现错误,而不是覆盖它。我想也许我需要告诉生成的脚本使用其他名称(或抑制脚本的生成)。

然后我尝试放弃所有内容,运行 部署。我错误的假设是生成的deployment would/could/should 写了key, login, user,因为它有项目中的SNK信息。它当然没有那样做。

当然,解决方案是从我的预部署脚本中删除程序集创建步骤,同时保留密钥、登录名和用户的创建。然后它成功创建了程序集。