微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Visual Studio 2019 SSDT项目SQLCLR签名未生成签名的DLL

如何解决Visual Studio 2019 SSDT项目SQLCLR签名未生成签名的DLL

我使用Visual Studio 2019创建了一个SSDT项目。添加sql CLR C#用户定义函数

打开项目属性页,在“ sqlCLR”选项卡中,单击“签名...”按钮以选中“对程序集签名”,创建一个新的密钥文件。但是在构建项目之后,不会对生成的DLL进行签名。 DLL没有数字签名。

如何使用Visual Studiosql CLR DLL进行签名?

解决方法

为什么说DLL没有签名?您是否使用可以检查强名称的工具检查DLL(与使用证书签署程序集/ DLL的证书不同)? SN.EXE 是用于强烈命名程序集的名称。并且它还可以提取一个强名来确认它确实具有强名。

我怀疑DLL /程序集的名称很重(即已签名),但由于Visual Studio(更具体地说,处理SQL脚本和部署的SSDT)具有从未了解SQLCLR安全性的概念(可能是因为SSDT数据库项目只是数据库级别,而不是实例级别)。因此,不幸的是,我们只能自己处理正确部署(“正确”意味着为数据库启用TRUSTWORTHY)。

我有两种针对此问题的方法的说明,均适用于SQL Server 2017和更高版本(较旧版本没有荒唐和适得其反的“ CLR严格安全性”服务器配置选项),都可以自动化。

有关更多详细信息和解释,请参阅我对以下问题的回答(也在S.O.上找到):

CLR Strict Security on SQL Server 2017

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。