1

我正在尝试使用 WiX 工具集提供的 VB 自定义操作项目模板为安装程序(使用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 是否是正确的选择。

4

2 回答 2

2

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

我会用。. .

 Return ActionResult.Failure

附带说明一下,我会将其包装在 Try/Catch 中并抛出一条消息。. .

于 2014-02-01T22:01:06.873 回答
0

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

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

于 2014-02-02T14:13:33.803 回答