【问题标题】:wix use custom action to validate text inputwix 使用自定义操作来验证文本输入
【发布时间】:2022-01-01 16:31:36
【问题描述】:

我正在制作安装程序,现在我想在安装对话框中检查用户输入。

有人说应该使用自定义动作,现在我可以用C#编写自定义动作并将其嵌入到安装程序中,那么我应该如何进行输入验证?

谢谢!

【问题讨论】:

  • 要为您指明正确的方向,您可以使用您的 C# 自定义操作来访问该值并设置一个属性来指示您是否可以继续。在您的 UI 中,您可以只引用此属性。此外,如果性能是优先考虑的因素,您可能希望使用 VBScript 编写它,.NET 自定义操作的加载和运行速度要慢得多。
  • @codemonkeh 谢谢!这正是我需要的。
  • @codemonkeh 嗨,您能提供更多建议吗?目前我正在尝试使用 vbscript 来定义一个动作,但我怎么能触发这个动作呢?下一个按钮和编辑文本在同一个对话框中,我想在单击下一个按钮时检查输入,所以动作应该在单击之前触发,那么如何触发呢?谢谢

标签: validation wix


【解决方案1】:

如果您要使用 VBScript 编写自定义操作,您需要首先在您的 Product.wxs 中定义它,类似于:

<Binary Id="testDatabaseConnection" SourceFile="Scripts\testDatabaseConnection.vbs" />
<CustomAction Id="CA.TestDatabaseConnection" BinaryKey="testDatabaseConnection" VBScriptCall="testDatabaseConnection">1</CustomAction>

然后您需要在其中一个 UI 文件中使用类似于以下的按钮来触发它:

<Control Type="PushButton" Id="TestConnection" Width="93" Height="17" X="80" Y="243" Text="Test Connection">
  <!-- Validate the database connection -->
  <Publish Event="DoAction" Value="CA.TestDatabaseConnection" Order="1">1</Publish>
  <Publish Property="P.DATABASE_CONNECTION_VALID" Value="[P.DATABASE_CONNECTION_VALID]" Order="2">1</Publish>
</Control>

在脚本中,您可以像这样设置属性值:

Session.Property("P.DATABASE_CONNECTION_VALID") = "1"

【讨论】:

    猜你喜欢
    • 2018-03-18
    • 1970-01-01
    • 2011-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多