代码签署.NET程序集或只是设置?

Dan*_*elR 5 .net deployment installation code-signing

我的公司终于买了代码签名证书.

我有一个WinForms应用程序(1个exe和几个dll),所有程序集都已经用强名称签名.然后将整个应用程序打包到msi安装程序中.然后我使用NSIS将msi,引导程序和先决条件(Framework,SQL CE ...)打包到一个setup.exe中.

显然我的setup.exe需要签名,以避免"可怕的"UAC提示.这还不够,还是你还会签署其他文件,尤其是.NET程序集?

属于该应用程序的另一个项目是Windows服务.你会签署那个集会吗?

And*_*are 5

你没必要,但这不是一个坏主意.

编写完全验证的签名安装

您可以使用这些准则通过数字签名覆盖整个Windows Installer安装.

Windows Installer安装的作者必须遵守以下规定,以确保安装的所有部分都包含在数字签名中:

  • 使用内部cabinet文件,或使用签名的外部cabinet文件并正确编写MsiDigitalSignature表和MsiDigitalCertificate表.
  • 仅使用存储在包中或随包一起安装的自定义操作.
  • 签署安装包.
  • 在包中包含MsiPatchCertificate表.要启用用户帐户控制(UAC)修补,此表必须包含用于标识用于对修补程序进行数字签名的签名者证书的信息.通过UAC修补,安装程序包的作者可以识别非管理员用户将来可以应用的数字签名修补程序.

上述说明涵盖了您需要为安装程序本身执行的操作.签署程序集取决于您,并且在某种程度上是一个单独的问题,并且具有单独的关注点和好处.请阅读强名称程序集可以让您远离DLL Hell,以获取有关签署程序集的更多信息.