2014-07-03 26 views
0

我遇到突发问题。通常情况下,我已经能够以某种方式为MSI安装包构建修补程序,以便在应用修补程序时不需要管理员权限 - 可以从标准用户帐户更新已安装的应用程序。 Bootstrapper EXE,安装包MSI和补丁MSP都使用相同的有效证书签名。WIX:在没有UAC提升的情况下安装补丁程序

但是,现在我突然发现了一个问题,在这种情况下不再有效。当安装修补程序时,它会弹出UAC对话框,要求输入管理员密码。所以,我启用了补丁安装的日志记录,这就是微软的安装程序告诉我:

MSI (s) (58:40) [09:11:17:787]: Certificate of signed file 'C:\Windows\Installer\23f85ae.msp' differs in size with the certificate authored in the package 
MSI (s) (58:40) [09:11:35:025]: MSI_LUA: Credential Request return = 0x800704C7 
This installation is forbidden by system policy. Contact your system administrator. 

但证书本人签收全部文件(EXE,MSI,MSP)是非常相同的。 有什么建议吗? (WIX用于创作安装包)

编辑: 此外,我试图从构建的MSI和MSP包中提取证书,它们的大小相同。所以我不明白为什么我在Microsoft Installer日志中找到该错误消息以获得该补丁。

回答

0

好吧,我终于找到了问题,确实有一个证书正在编写到包中,并且它的截止日期早已过去。至于为什么只是现在和不久之前才遇到安装问题,这个谜仍然存在。

唉...

2

我正在研究同样的问题。当试图安装.msp补丁时,安装程​​序给了我同样的信息:“签名文件的证书'C:\ Windows \ Installer ..... msp'与包装中创建的证书大小不同”

I想分享我的解决方案。我花了两天才弄明白。

我的问题是,我在MsiPatchCertificate表中嵌入的证书格式不同。它必须是DER格式。要转换证书从PEM为DER格式使用:

OpenSSL的X​​509 -outform DER -in cert.pem -out cert.cer

+0

感谢您分享您的问题和解决方案!当我再次遇到这个问题时,我将检查它。 :) – 10100111001

相关问题