如何正确签名和部署 VSTO 插件

问题描述 投票:0回答:4

我开发了一个 vsto excel 插件。

这就是我将其部署到新电脑上的方法。

  1. 将所有文件复制到本地计算机/文件夹

这是我的文件夹结构: Folder Structure

然后我将以下信息添加到注册表中:

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\Excel\Addins\Bill Generator For Quickbooks]
"Description"="Bill Generator For Quickbooks"
"FriendlyName"="Bill Generator For Quickbooks"
"LoadBehavior"=dword:00000003
"Manifest"="file:///c:\Users\SiamIT-VMW7\Desktop\redist\Bill Generator For Quickbooks.vsto|vstolocal"

然后当我运行/打开 Excel 时,它会显示以下警告窗口(因为文件未签名)。如果我点击“安装”,它就会正常工作

Unknown Publisher

因为我想删除该警告,所以我已使用 mage 实用程序签署了清单和 vsto 文件。但如果我尝试使用签名版本运行,Excel 会抛出以下错误?!?

Manifest Error

那么我在这里缺少什么?避免该警告窗口的正确方法是什么?

提前致谢

致以诚挚的问候

c# vsto clickonce office-addins excel-addins
4个回答
2
投票

经过相当多的研究,我找到了解决方案..

当我使用 maze -sign 命令签署两个文件(清单和 vsto)时,显示了该错误。但这不是正确的程序..

首先我需要使用 maze -sign 命令签署清单文件

然后我需要使用 maze -update 命令对 vsto 文件进行签名,以便 maze 可以在 vsto 文件中添加签名的清单哈希,以便可以通过 excel 进行匹配。

这是用于签署清单的示例命令行代码:

mage.exe -s "Bill Generator For Quickbooks.dll.manifest" -a sha256RSA -ch [My Certificate Hash] -csp "[My Certificate Service Provider]" -kc [My Certificate Key Container] -TimeStampUri [My Certificate Provider Timestamp URL]

这是使用更新命令对 vsto 文件进行签名的示例命令行代码

mage.exe -u "Bill Generator For Quickbooks.vsto" -appmanifest "Bill Generator For Quickbooks.dll.manifest" -a sha256RSA -ch [My Certificate Hash] -csp "[My Certificate Service Provider]" -kc [My Certificate Key Container] -TimeStampUri [My Certificate Provider Timestamp URL]

当我将这种方式签名的文件添加到部署中时,效果很好!

这是屏幕截图:

Verified Publisher

我发布了自己的答案,希望有一天它可能会对某人有所帮助:)


0
投票

第一次安装和使用插件时,VSTO 系统总是显示第一个提示。即使证书是可信的。

显示第二个提示是因为manifest/vsto/dll文件中指定的证书不匹配。


0
投票

当您尝试安装未签名的应用程序时,您可以看到 ClickOnce 安装程序的标准对话框。为了避免此类对话框,您需要签署应用程序和部署清单。它们必须使用公钥/私钥对进行签名,并使用 Authenticode 技术进行签名。您可以使用 Windows 证书存储中的证书或密钥文件对清单进行签名。

因为我想删除该警告,所以我已使用迷宫实用程序签署了清单和 vsto 文件。

Maze
与数字签名无关。您需要使用来自任何受信任供应商的数字签名来签署您的
ClickOnce
安装程序,请参阅如何:签署应用程序和部署清单以了解更多信息。

此外,您可能会发现使用 ClickOnce 部署 Office 解决方案一文很有帮助。


0
投票

2025 年更新: 您现在可以使用 .NET Sign CLI 工具,该工具还支持使用 Azure Key Vault 进行远程签名。

© www.soinside.com 2019 - 2024. All rights reserved.