我编写了一个位于程序集中的 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/