2010-08-28 59 views
1

我希望你能幫助我用下面的維克斯問題:維克斯性能不從WXI(<Control>)的WXS堅持(<InstallExecuteSequence>)

在我main.wxs,我初始化「myProperty的」說然後在ui.wxi中,我彈出一個帶有複選框的對話框(這是從我在.wxs中設置的MYPROPERTY選中/啓用的)。我可以驗證,通過取消選中複選框,它確實會翻轉值,因爲我啓用/禁用「下一步」按鈕取決於MYPROPERTY值 - 我有多個複選框順便說一句。

問題是,如果在運行生成的.msi時取消選中UI中的複選框,則無論複選框被選中還是取消選中,都會運行自定義操作(就像「MYPROPERTY」始終爲1,請參閱條件)。我如何製作將MYPROPERTY值設置爲實際持續保存到自定義操作的複選框?

任何幫助表示讚賞。謝謝。

MAIN.WXS:

<Property Id='MYPROPERTY'>1</Property> 
<?include ./ui.wxi ?> 
... 
<InstallExecuteSequence> 
    <Custom Action="MyCustomAction" After="InstallFiles"> 
     (NOT Installed) AND (MYPROPERTY = 1) 
    </Custom> 
... 

ui.wxi:

<UI Id='xxx'> 
... 
<Dialog 
     Id="Choose" 
     Title="My Setup"> 
    <Control 
     Id="MyCheckBox" 
     Type="CheckBox" 
     CheckBoxValue="1" 
     Property="MYPROPERTY" 
    /> 
... 

回答

1

您已經定義了一個公共屬性,但沒有取得它的安全。如果您是以管理員身份在Windows XP上運行,那麼它將工作,但如果您在Windows XP上作爲標準用戶執行廣告/託管/提升安裝,或者在啓用UAC的Windows Vista上運行,則無法工作,因爲您還必須添加Secure屬性將其標記爲SecureCustomProperty。

SecureCustomProperties Property

+0

安裝程序已提升權限,甚至可以運行所以這不是問題。即使如此,我在Properties元素中輸入了'Secure'屬性,並沒有產生影響 – Totem 2010-08-28 18:20:09

+0

嗯,這是該場景的常見原因。我的下一個評論是:你是否記錄了安裝並閱讀了它? BTW,MYPROPERTY = 1是多餘的。你可以說MYPROPERTY – 2010-08-28 19:09:41