在不签署证书的情况下部署 VSTO 加载项?

BDr*_*Dra 3 vb.net security vsto office365

这是我第一次尝试将 VSTO 外接程序部署到用户的系统,并且遇到了安全障碍。该加载项是在 Visual Studio 2019 Community Edition 中构建的,旨在与 Microsoft Excel 集成。用户运行 Office 365。

运行 Setup.exe 时,用户会收到初始确认提示并单击“安装”。进度条会短暂出现并运行到大约 25%,然后弹出一条错误消息:“此应用程序中的自定义功能将无法工作,因为用于签署 [加载项] 或其位置的部署清单的证书是不被信任。”

我知道 Microsoft 希望我支付签名证书的费用,但我希望在避免这笔费用的同时使其发挥作用。

Microsoft 的这篇文章将数字证书的使用描述为“可选步骤”:ClickOnce 和 Authenticode。本文指出,另一种途径是用户在安装过程中单击“ClickOnce 信任提示”:授予对 Office 解决方案的信任。但据我了解该过程,它甚至在到达 ClickOnce 信任提示之前就停止了,因此用户永远不会获得该选项。

为了进行比较,用户在旧系统上运行了安装。在该系统上,他收到了 ClickOnce 提示,批准了该软件,并且安装成功运行到最后。这非常强烈地表明新系统上的问题是安全设置。

我指示用户打开 Excel,然后转到“选项”>“信任中心”>“信任中心设置”>“加载项”,然后删除“要求应用程序加载项由受信任的发布者签名”中的复选标记。一开始就没有复选标记,因此设置不是问题。

rundll32 dfshim CleanOnlineAppCache我已指示用户在每次尝试新安装之前转到命令提示符并清除失败安装的所有残留内容。

我不知道下一步该去哪里。任何帮助将非常感激。

Nik*_*lay 6

一种相对简单的解决方法:将“发布”文件夹打包为 ZIP 文件,禁用任何在线检查或部署(在项目设置中,选择在本地发布,而不是发布到网站。从网站安装或自动更新将不起作用没有正常的证书)。然后为您的用户提供该 ZIP。用户下载该 ZIP,然后右键单击该 ZIP 文件并选中“取消阻止”。然后解压并正常安装。现在任何证书都可以。如果您的用户从互联网下载您的文件,则这适用。

所以这个想法非常简单:只需告诉您的用户在从您发送的 ZIP 存档中提取文件并运行它们之前单击“取消阻止”复选框即可。

在此输入图像描述

另一种解决方案是,您只需告诉用户系统信任您的“自签名”开发人员证书(将您的证书添加到用户计算机上的“受信任的发布者”存储中)。为此,您需要管理员权限。请注意,用户的管理员可能不会喜欢这个想法,除非您和您的用户在同一组织中工作。以下是说明:https://learn.microsoft.com/en-us/skype-sdk/sdn/articles/installing-the-trusted-root-certificate

最好和最简单的当然是购买普通的代码签名证书。它们并没有那么贵,您可以从 COMODO (SectiGo) 购买一个,例如通过他们的经销商每年 70 美元。