2010-10-18 97 views
2

我们有一个应用程序要求用户是要运行的管理员。因此,在app.manifest我们建立了通过MSI安装后,可执行文件没有签名

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

我们有钥匙一起签署我们的组件,我已经能够使用签署MSI和我们的应用程序的可执行文件。应用程序的可执行文件在项目的后期构建事件中通过signtool.exe进行签名。

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

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

如何在将可执行文件打包成MSI后将其签名?

+0

创建一个setup.exe而不是.msi,对它进行签名。 – 2010-10-18 22:24:37

+0

MSI可以离开,为我所关心的一切而死。 – Joshua 2011-02-08 02:25:45

回答

4

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

当MSI被编译时,它不会从bin目录中拉出,它从obj目录中取出。基本上,我一直在签署错误的可执行文件。

+0

你可以发布URL到博客? – phdesign 2011-02-08 02:29:16

+0

这只是足够的信息让我意识到我的安装程序出了什么问题。谢谢! – 2012-08-21 15:31:29

相关问题