sql-server - 重新部署包含 CLR 存储过程的 .NET 程序集

标签 sql-server stored-procedures deployment continuous-integration sqlclr

我编写了一个位于程序集中的 CLR 存储过程。

我有一个构建系统,可以从我们的源代码控制存储库自动构建和部署 .net 应用程序。

我希望这两件事能够协同工作,以便我可以重新部署托管 CLR 存储过程的程序集。

然而,与 IIS 不同的是,简单地替换二进制文件是行不通的。看来您必须在数据库上删除组件。为了做到这一点,您需要删除引用该程序集的所有对象。

这在某种方面似乎是合理的(即从数据库完整性的角度来看),但在另一种方面似乎是不合理的——通常适用于 .NET 依赖项运行时评估的 JIT 方法。

那么,是否可以做一些事情,以便我可以替换二进制文件,然后给 SQL Server 一个启发,让它弄清楚新程序集满足所有要求(即,具有正确的公共(public)命名空间、类型、方法等)满足与其绑定(bind)的存储过程)。

最佳答案

CLR 程序集存储在数据库中,而不是磁盘上,因此您不能简单地替换某些二进制 dll。要刷新它们,请使用ALTER ASSEMBLY [程序集名称] FROM 'disklocation'

关于sql-server - 重新部署包含 CLR 存储过程的 .NET 程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1299063/

相关文章:

sql - 带 IF 条件的 PL/SQL 游标

java - 将 env 特定属性传递到 webapp

iis - 无法访问部署在本地 IIS Web 服务器上的 RESTFul WCF 服务上的 .svc

sql - 如何跨 UNION 重复 SQL 查询的部分? (SQL 中的 DRY)

sql-server - SQL Server 2008 R2 : Refuses connections after some time

sql-server - 连接字符串 DNS 查找是否会被缓存?

c# - 从存储过程中获取插入/更新/删除的行数 - Linq to SQL

stored-procedures - 备份存储过程

tomcat - 使用 ant : how to know when the application is reloaded? 部署到 tomcat

sql-server - 从 float 转换为 varchar 时我失去了精度