2017-02-03 5 views
0

HKLMでレジストリキーを作成する必要があるセットアッププロジェクトを作成しました。 これは、「NOT(MYCONDITION = 1)」と書いてあります。そのため、ユーザーがmsiのコマンドライン実行中にMYCONDITION = 1を定義すると、レジストリキーは書き込まれません。 msiexec/i mymsi.msi/passive/MYCONDITION = 1レジストリのVisual Studioセットアッププロジェクトの条件が正しく動作しません

これはMSIファイルでは無視されますが、レジストリキーはまだ書き込まれています。

私はファイルシステムビューでファイルに対して全く同じ条件を設定しました。ここでは動作します。したがって、ユーザーがこのMyCondition = 1を持つ場合、ファイルはインストールフォルダにコピーされません。

私はこの現象が発生する理由を考え出すことができますか? ありがとう

+0

また、このプロパティはダイアログボックス(チェックボックスなど)にもありますか?セットアッププロジェクト?また、これがx86セットアッププロジェクト(プロジェクトプロパティウィンドウのTargetPlatform)である場合は、WoW6432レジストリを探していると仮定します。 – PhilDW

+0

いいえ私はその値を持っているチェックボックスを持っていないのは、コマンドラインオプションにすぎないからです。私はそれをコマンドラインで入力すると、それが定義されていることを条件でチェックできると仮定します。レジストリエントリがないので、wow6432で検索する必要はありません。それどころか、1つ2つのエントリが多数あり、それは予想される動作ではありません。 –

答えて

0

私はそれを動作させる方法を見つけました。私が追加したい値の親キーに条件を置くのではなく、各レジストリ値に条件を設定して、うまくいきました。 ただし、子値が作成されていない場合は作成されないように、「AlwaysCreate」プロパティをfalseに設定してください。

関連する問題