3

我试图检测用户在安装我的程序期间是否选择了“所有用户”或“只有我”单选。我有一个自定义操作设置,它覆盖了几种方法(OnCommit、OnBeforeInstall 等)。现在我正试图在 OnCommit 期间找出这些信息。

我已经读到我想要获得的属性是 ALLUSERS 属性,但是我没有找到将其存储在实例/本地数据中的位置。

有谁知道一种方法吗?

-本

4

1 回答 1

4

在这里回答我自己的。

解决方案是在安装项目的属性 gui 中查看自定义操作。从那里,选择一个自定义操作允许我编辑 CustomActionData,在这种情况下我输入:

/AllUsers=[ALLUSERS]

从那里我可以检测到它是否是从自定义操作 CS 代码中安装的所有用户:

private bool IsAllUsersInstall()
    {
        // An ALLUSERS property value of 1 specifies the per-machine installation context.
        // An ALLUSERS property value of an empty string ("") specifies the per-user installation context.

        // In the custom action data, we have mapped the parameter 'AllUsers' to ALLUSERS.
        string s = base.Context.Parameters["AllUsers"];

        if (s == null)
            return true;
        else if (s == string.Empty)
            return false;
        else
            return true;
    }

希望这可以帮助那里的人:)

于 2010-04-02T20:04:34.207 回答