1

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

私が知りたいのは、ActionResult.SkipRemainingActions を返すことが、テストされているマシンの RAM が成功を促す結果よりも少ない場合に使用する正しい選択であるかどうかです。

4

2 に答える 2

2

これが私の 2 セントです... 条件が満たされない場合は、インストールを終了します。持っているものを使用すると、インストールは続行/スキップされ、実際には他のすべての条件がスキップされます。「ActionResult.Failure」を使用すると、インストールがロールバックされます。

私は使うだろう。. .

 Return ActionResult.Failure

ちなみに、これを Try/Catch にまとめてメッセージをスローします。. .

于 2014-02-01T22:01:06.873 に答える
0

これは答えるのが間違った質問です (ただし、その回答には同意しますActionResult.Failure)。

正しい質問は、Windows インストーラーで使用可能なメモリの合計を確認する最善の方法は何かということです。Windows Installer プロパティ リファレンスによると、答えはPhysicalMemoryと比較することです。これを行う適切な場所は、カスタム アクションではなくCondition 要素です。

于 2014-02-02T14:13:33.803 に答える