我公司最终购买了代码签名证书。
我有一个WinForms应用程序(1个exe和几个dll),所有程序集都已经用强名称签名。然后将整个应用程序打包到msi安装程序中。然后我使用NSIS将msi,引导程序和先决条件(Framework,SQL CE ...)打包到一个setup.exe中。
显然我的setup.exe需要签名,以避免“可怕的”UAC提示。这还不够,还是你还会签署其他文件,尤其是.NET程序集?
属于该应用程序的另一个项目是Windows服务。你会签署这个集会吗?
答案 0 :(得分:5)
你不必,但这不是一个坏主意。
Authoring a Fully Verified Signed Installation
您可以使用这些指南来涵盖 整个Windows Installer 通过数字签名安装。
Windows Installer的作者 安装必须坚持 以下是为了确保所有部分 安装由a覆盖 数字签名:
- 使用内部文件柜文件,或使用签名的外部文件柜文件和 正确地创作了 MsiDigitalSignature表和 MsiDigitalCertificate表。
- 仅使用存储在软件包中或随之安装的自定义操作 包裹。
- 签署安装包。
- 在包中包含MsiPatchCertificate表。启用用户帐户 控制(UAC)修补,此表 必须包含用于的信息 确定使用的签名者证书 对补丁进行数字签名。 UAC 修补使作者 安装包来识别 可以是数字签名的补丁 将来应用于 非管理员用户。
上述说明涵盖了您需要为安装程序本身执行的操作。签署程序集取决于您,并且在某种程度上是一个单独的问题,并且具有单独的关注点和好处。有关签署程序集的更多信息,请阅读Strong name assemblies can keep you out of DLL Hell。