2

我们有一个应用程序要求用户是管理员才能运行。所以,在app.manifest我们设置的

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

我们有一个密钥来签署我们的程序集,我已经能够使用它来签署我们的应用程序的 MSI 和可执行文件。signtool.exe应用程序的可执行文件通过项目的构建后事件进行 签名。

如果我查看 bin 目录,可执行文件确实已正确签名,但在将其打包msi并安装到另一台机器上后,可执行文件不再签名。

这通常不会是一个大问题,除非我们需要管理员权限,所以当用户收到 UAC 提示时,它会显示一个未知的发布者。

将可执行文件打包到 MSI 后,如何对其进行签名?

4

1 回答 1

4

我终于在一个不起眼的博客上找到了答案。

MSI 编译时,不是从 bin 目录拉取,而是从 obj 目录拉取。基本上,我签署了错误的可执行文件。

于 2010-10-19T19:49:56.057 回答