具有权限的自定义操作
Posted
技术标签:
【中文标题】具有权限的自定义操作【英文标题】:Custom Actions with privileges 【发布时间】:2012-10-25 09:09:31 【问题描述】:您好,我已经使用 WIX 创建了一个 MSI 安装程序。我的自定义操作有问题。我有一个填充文本框的自定义操作,它似乎只在我从命令提示符下以管理员身份运行 cmd 运行 MSI 时才起作用。是否存在连接以及如何使用特权运行我的自定义操作。我的自定义操作在单击按钮时立即运行。谢谢
【问题讨论】:
【参考方案1】:填写文本框不需要任何权限,因此根据您提供的信息,这不应该发生。很有可能它确实需要提升,比如为了获取它放入框中的文本,这就是它出现问题的原因。仅当从提升的上下文启动 .msi 时,才会提升 UI 序列。即使 .msi 不是,也可以提升延迟序列,但这对您的 UI 没有帮助。
【讨论】:
谢谢迈克尔,我会查看我的代码,看看我从哪里提取文本是否需要提升。很好的解释。谢谢【参考方案2】:以下是有关该主题的一些必读内容:
Installation Phases and In-Script Execution Options for Custom Actions in Windows Installer
我看了几遍才明白。基本上,您需要在 InstallInitialize 和 InstallFinalize 之间对自定义操作进行排序,并将其安排为 Deferred 而不进行模拟。如果您需要访问 MSI 会话,您可能还需要为立即安排自定义操作。你
【讨论】:
您好,感谢您提供该链接,阅读愉快..:) 我意识到我发布了不正确的信息,我的自定义操作实际上是在进度对话框之前很久点击按钮。我有另一个执行类似操作的自定义操作,它似乎工作正常,只有这个。 这是一个始终立即执行的 DoAction ControlEvent。正如 MichaelU 所说,这永远不需要许可。我必须看看你的代码做了什么才能理解它为什么会失败。 感谢 Christopher,我将查看我的代码并尝试检测它需要许可的位置。以上是关于具有权限的自定义操作的主要内容,如果未能解决你的问题,请参考以下文章