2

クライアント サーバー ソフトウェア パッケージの一部として、証明書を発行するカスタム CA があります。CA を信頼できるルート CA として各ユーザーのマシンにインストールできる必要があります。これを実現するためにCertificate、WiX 用の IIS 管理パッケージの要素を使用しています (証明書は IIS 用ではありませんが、目的には役立ちます)。もともと、ローカル マシン ストアにインストーラーを配置していましたが、昇格を必要としないようにするために、インストーラーをユーザーごとのインストールにする必要があったため、ローカル ユーザー ストアに格納する必要があります。

ストアの場所を に変更しましたがcurrentUser、これは機能しますが、インストーラーを実行するたびに証明書のインストールに関する警告が表示され、新しいバージョンのインストーラーがインストールされたときに証明書の削除とインストールに関する両方の警告が表示されます。実行してアップグレードします。ローカル マシン ストアを使用している場合、そのような警告は表示されませんでした。

次のいずれかを行う方法はありますか。

  • 証明書がまだ存在しない場合にのみインストーラーに証明書をインストールさせ、アンインストール時に削除しないようにします (したがって、アップグレードでは最初に証明書が削除されず、警告が 1 つなくなり、既に存在するためインストールされません)。 、他の警告を削除します)
  • ユーザーにプロンプ​​トを表示せずに、インストーラーに証明書の削除/インストール アクションを実行させる
4

1 に答える 1

2

これは私が尋ねたことに対する正確な解決策ではありませんが、私にとってはうまくいく解決策を見つけました。

私は自分の証明書に設定Permanent="true"し、Component以下のような条件を与えました:

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

私は更新にブートストラップ アプリケーションを使用しているため、これは機能します。そのため、アップグレード時にSKIPCERT値という名前のカスタム変数を渡すことができYESます。

条件と組み合わせると、Permanent="True"アンインストール (またはアップグレード) 時に証明書が削除されず、更新プログラムをインストールするときに再度インストールしようとしないことを意味します。

于 2013-01-25T23:57:21.063 に答える