将证书作为WiX包的一部分安装

时间:2013-01-25 18:14:18

标签: wix wix3.6

作为客户端 - 服务器软件包的一部分,我们有一个颁发证书的自定义CA.我需要能够在每个用户的计算机上将CA安装为受信任的根CA.为了实现这一点,我使用了IIS管理包中的Certificate元素用于WiX(该证书不适用于IIS,但这符合我们的目的)。最初,我让安装程序将它放在本地机器商店中,但我们必须为每个用户安装我们的安装程序以避免需要提升,所以我现在必须将它存储在本地用户存储中。

我已将商店位置更改为currentUser,但是现在每次运行安装程序时都会提示我安装证书的警告,以及有关删除和安装证书的警告当运行新版本的安装程序进行升级时。使用本地机器商店时,我没有收到这样的警告。

有没有办法执行以下任一操作:

  • 让安装程序仅安装证书(如果该证书尚不存在)并且在卸载时删除它(因此升级不会首先删除它,消除一个警告,然后不会安装它,因为它已经存在,消除了其他警告)
  • 让安装程序执行删除/安装证书操作,而不提示用户

1 个答案:

答案 0 :(得分:2)

虽然这不是我问的确切解决方案,但我找到了一个对我有用的解决方案。

我在Permanent="true"上为我的证书设置Component,并给出了如下条件:

<Component Id="MyCert" Permanent="True">
    <Certificate ... />
    <Condition><![CDATA[SKIPCERT <> "YES"]]></Condition>
</Component>

这对我有用,因为我使用了一个bootstrapper应用程序来进行更新,所以当我升级时,我能够将名为SKIPCERT的自定义变量传递给YES

Permanent="True"与条件相结合意味着在卸载(或升级)时不会删除证书,当我安装更新时,它不会尝试再次安装。