我是新來的使用Wix安裝程序,我遇到了一些問題,試圖控制一個 下一步按鈕,我有我的對話框之一。我在Wix郵件列表上問過這個問題,但沒有得到答案,所以我在這裏嘗試。我帶了WixUI_Mondo.wxs並將其重命名爲 ,並將其修改爲包含用於檢查數據庫連接的對話框。下面是我的 修改WixUI_Mondo.wxs的一個片段:控制Wix安裝程序中的下一個按鈕狀態
<Publish Dialog="CheckDbConnectionDlg" Control="Next" Event="NewDialog"
Value=VerifyReadyDlg">1</Publish>
<Publish Dialog="CheckDbConnectionDlg" Control="Back" Event="NewDialog"
Value=WelcomeDlg">2</Publish>
現在我CheckDbConnectionDlg.wxs內我有我想要 來控制它通過我設置一個CustomAction中的屬性啓用狀態的下一步按鈕。 下面是我的CheckDbConnectionDlg.wxs的一個片段,下一個按鈕是我試圖控制的 。
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17"
Text="Next">
<Condition Action="disable">
<![CDATA[CONTINUE <> "True]]>
</Condition>
<Condition Action="enable">
CONTINUE ="True"
</Condition>
</Control>
這裏是我的自定義操作,在那裏我設置屬性:
[CustomAction]
public static ActionResult TestSqlConnection(Session testSession)
{
...
...
...
//If the connection is successful
testSession["CONTINUE"] = "True";
// Else set the session to False
testSession["CONTINUE"] = "False";
}
而且我Product.wxs
<UIRef Id="WixUI_CustomUI" />
<Binary Id="SqlCustomAction" SourceFile="SqlCustomAction.CA.dll" />
<CustomAction Id=CA_testSqlConnection" BinaryKey="SqlCustomAction"
DllEntry="TestSqlConnection" Execute="immediate" Return="check" />
<InstallUISequence>
<Custom Action="CA_testSqlConnection" After="ExecuteAction" />
</InstallUISequence>
會發生什麼事是,當我到達CheckDbConnectionDlg的下一步按鈕 被禁用,因爲我想要它,在該對話框中,我有一個按鈕,用於測試連接到數據庫的 ,如果它很好,我希望Next按鈕t o啓用 ,以便繼續安裝;否則,我希望它保持禁用。 如果連接成功,它不會啓用「下一步」按鈕,但是如果 我點擊返回,然後點擊下一步。
有人能告訴我如何解決這個問題嗎?
我已經有一個條件,但它是基於我在我的習慣中設置的條件。有沒有另一種方法可以重構上面的代碼以正常工作? – Lance 2011-01-24 11:48:31