2016-09-28 5 views
0

に設定されたプロパティ値を無視し、私はプロパティの値に応じて選択または選択解除したい機能を持っていますフィーチャツリーを含むCustomizeSetupダイアログを表示する前に、私はPROP_IS_FIRST_INSTALLATIONを何らかのロジックに従って設定し、その値が0または1であってもフィーチャレベルは常に1です。デバッグの目的で、カスタムアクションのトリガを停止し、PROP_IS_FIRST_INSTALLATIONの値を手動で変更しましたint * .wxsファイル、および条件が正常に動作します。カスタムアクションでそれを変更するのはなぜうまくいかないのでしょうか?条件は、カスタムアクション

+0

インストールログファイルを確認しましたか?機能選択前にカスタムアクションが呼び出されていますか?ログファイルには、すべてのプロパティー変更の順序と値を示す必要があります。 –

+0

はい、プロパティの値は正しい – eddyuk

答えて

1

機能の条件がCostFinalizeアクション中に評価されるため、カスタムアクションがCostFinalizeより前でなければならないため、これらの呼び出しが行われる順序を確認してください。

https://msdn.microsoft.com/en-us/library/windows/desktop/aa368014(v=vs.85).aspx

これは、これらのケースでDoActionにcontrolEventを持っている私の意見ではより一般的です。ダイアログイベントは、必要な機能についてADDLOCALを実行し、他の機能では削除を実行できます。カスタムアクションは、& FeatureName = 3のように、インストールされているフィーチャーのフィーチャー条件によってトリガーされます。ここに例があります:

How to set the list of features which will be installed if the button was pushed?

+0

実際には、順次カスタムアクションではなく、ダイアログ間の遷移で発生します。ボタンのクリック時に発生するカスタムアクションがあり、そのカスタムアクションでは、フィーチャがレベル1または3でなければならないロジックがあります。 – eddyuk

+0

CostFinalizeの後に問題がある場合。 – PhilDW