我试图检测用户在安装我的程序期间是否选择了“所有用户”或“只有我”单选。我有一个自定义操作设置,它覆盖了几种方法(OnCommit、OnBeforeInstall 等)。现在我正试图在 OnCommit 期间找出这些信息。
我已经读到我想要获得的属性是 ALLUSERS 属性,但是我没有找到将其存储在实例/本地数据中的位置。
有谁知道一种方法吗?
-本
我试图检测用户在安装我的程序期间是否选择了“所有用户”或“只有我”单选。我有一个自定义操作设置,它覆盖了几种方法(OnCommit、OnBeforeInstall 等)。现在我正试图在 OnCommit 期间找出这些信息。
我已经读到我想要获得的属性是 ALLUSERS 属性,但是我没有找到将其存储在实例/本地数据中的位置。
有谁知道一种方法吗?
-本
在这里回答我自己的。
解决方案是在安装项目的属性 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;
}
希望这可以帮助那里的人:)