まず、プライベートプロパティと言うことを定義しましょう。Wixインストーラでプライベートプロパティを定義する
<Property Id="CHECKREGISTRY">
<RegistrySearch Id="CheckRegistryKey"
Root="HKLM"
Key="SOFTWARE\Foo"
Name="Bar"
Type="raw" />
</Property>
<Condition Message="You don't have the required permission to install this tool.">
<![CDATA[Installed OR CHECKREGISTRY]]>
</Condition>
をしかし、問題は、あなたは、単にこのようなスクリプトを実行することにより、このチェックをバイパスすることができるということです:
msiexec.exe /i FooInstaller.msi /quiet CHECKREGISTRY="#1"
とは、非常に反している。通常、プロパティは次のようなスクリプトを使用して設定することができますあなたがしたいことをするためにレジストリキーを持っているべきであるという最初の考え。
ご覧のとおり、プライベートプロパティ(存在する場合)によってこれが防止され、MSIインストーラ自体からのみ設定できるようになります。
私はCustomAction
に行くと思っていましたが、非常に簡単なことは、あまりにも複雑です。この問題に対する簡単な解決方法はありますか、または私たちはまずプライベートプロパティをどのように定義できますか?
ありがとうございます。少なくとも、それが他のスクリプトやインストーラの一部であることを妨げます。私はこのオプションがあることをうれしく思っています。どうもありがとう! – Tarik
"CNDL0012エラー:プロパティ/ @ Id属性の値 'checkRegistry'に小文字を含めることはできません。これは検索プロパティなのでパブリックプロパティでもなければなりません。完全に大文字でなければなりません。(32) " – Tarik
右。 'しかし、あなたはプライベートプロパティを設定するためにAppSearchを使用することはできません。 ' –