【问题标题】:Visual Studio 2019 SSDT project SQLCLR signing not generating signed DLLVisual Studio 2019 SSDT 项目 SQLCLR 签名未生成签名的 DLL
【发布时间】:2021-02-16 06:52:31
【问题描述】:

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

打开项目属性页面,在SQLCLR选项卡中,点击Signing...按钮,勾选“Sign the assembly”,新建一个key文件。但是在构建项目后,生成的 DLL 没有签名。 DLL 没有数字签名。

如何使用 Visual Studio 对 SQL CLR DLL 进行签名?

【问题讨论】:

    标签: c# sql-server visual-studio-2019 sql-server-data-tools sqlclr


    【解决方案1】:

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

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

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

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

    CLR Strict Security on SQL Server 2017

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-18
      • 1970-01-01
      • 1970-01-01
      • 2021-02-04
      • 1970-01-01
      • 2013-12-14
      相关资源
      最近更新 更多