除了自定义Action的成功之外,应该返回什么

时间:2014-02-01 17:23:30

标签: vb.net wix advanced-installer

我正在尝试使用随WiX Toolset提供的VB Custom Action Project模板为安装程序(使用Advanced Installer构建)编写我的第一个自定义操作。基本上我只是想测试一台机器上的Ram的数量,以确定如果不存在,应该安装哪个版本的先决条件。

到目前为止(半伪代码)中的内容如下:

Public Class CustomActions

<CustomAction()> _
Public Shared Function CustomAction1(ByVal session As Session) As ActionResult
    session.Log("Begin CustomAction1")
    If New Microsoft.VisualBasic.Devices.ComputerInfo().TotalPhysicalMemory > [ram size here] Then
        Return ActionResult.Success
    Else
        Return ActionResult.SkipRemainingActions
    End If

End Function

End Class

我想知道的是,如果正在测试的计算机上的ram小于提示成功的结果,则返回ActionResult.SkipRemainingActions是正确的选择。

2 个答案:

答案 0 :(得分:2)

这是我的2美分......如果条件不满足,我会终止安装。如果你使用你拥有的东西,那么安装仍将继续/跳过每个说明它实际上将跳过所有其他条件。当您使用“ActionResult.Failure”时,这将回滚安装。

我会用。 。

 Return ActionResult.Failure

在旁注中,我会将其包装在Try / Catch中并抛出一条消息。 。

答案 1 :(得分:0)

这是一个错误的答案(虽然我同意ActionResult.Failure的答案)。

正确的问题是在Windows Installer中检查总可用内存的最佳方法是什么。根据{{​​3}},答案是与Windows Installer Property Reference进行比较,正确的位置是PhysicalMemory,而不是自定义操作。