【发布时间】:2011-01-23 20:39:48
【问题描述】:
我刚开始使用 Wix 安装程序,但在尝试控制 下一个按钮我在我的一个对话框上。我在 Wix 邮件列表上问过这个问题,但没有得到答案,所以我在这里尝试。我取了 WixUI_Mondo.wxs 并将其重命名为 修改它以包含一个用于检查数据库连接的对话框。下边是 我修改后的 WixUI_Mondo.wxs 的 sn-p:
<Publish Dialog="CheckDbConnectionDlg" Control="Next" Event="NewDialog"
Value=VerifyReadyDlg">1</Publish>
<Publish Dialog="CheckDbConnectionDlg" Control="Back" Event="NewDialog"
Value=WelcomeDlg">2</Publish>
现在在我的 CheckDbConnectionDlg.wxs 中,我有一个我正在尝试的 Next 按钮 通过我在 CustomAction 中设置的属性来控制它的启用状态。 下面是我的 CheckDbConnectionDlg.wxs 的 sn-p,带有“下一步”按钮 试图控制。
<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 时会发生下一步按钮 按我的意愿被禁用,在那个对话框上我有一个按钮来测试 连接到数据库,如果它很好,我希望下一步按钮是 启用,因此可以继续安装;否则,我希望它保持禁用状态。 如果连接成功,则不会启用“下一步”按钮,但如果 我单击返回,然后单击下一步。
谁能告诉我如何纠正这个问题?
【问题讨论】:
标签: wix