如果用户没有管理员权限。如何在从注册表中读取按钮单击事件时调用安装程序类,并在c#中向注册表中写入值?是否有可能调用安装程序类上按钮点击C#不在设置自定义操作?
由于我在用户注册时遇到错误,它在注册表中写入值,用户无权写入注册表。所以我知道只有安装程序类才有权这样做。那我该如何做这项工作?
如果用户没有管理员权限。如何在从注册表中读取按钮单击事件时调用安装程序类,并在c#中向注册表中写入值?是否有可能调用安装程序类上按钮点击C#不在设置自定义操作?
由于我在用户注册时遇到错误,它在注册表中写入值,用户无权写入注册表。所以我知道只有安装程序类才有权这样做。那我该如何做这项工作?
建议的方法是使用两个不同的自定义操作:
这样你就不应该有权限问题。
有没有一个可能的理由想要这样做。安装程序类自定义操作无法访问MSI句柄。这意味着他们无法获得/设置属性。唯一可用的是更改机器的配置,并违反所有Windows Installer最佳实践,以便在用户界面序列中执行此操作。
应该在UI中的按钮上完成的唯一一件事是在进入下一个对话框之前必须完成的验证处理。一个例子是验证用户输入,例如连接到SQL服务器的证书。连接到SQL服务器和执行某些操作的繁重工作应该作为执行顺序中的延迟自定义操作完成。
我建议看看WiX DTF。这暴露了更多的功能,然后安装程序类自定义操作,并允许您创建遵循最佳实践的解决方案。
InstallUtil自定义操作可能会读取注册表,但无法设置任何属性。因此,您无法为第二个自定义操作设置CustomActionData以进行读取。 – 2011-02-04 16:05:43