如何在具有提升权限的 WiX 中创建的 MSI 中运行自定义操作?

发布于 2024-10-28 05:14:38 字数 311 浏览 4 评论 0原文

我有一个安装程序需要访问注册表并使用自定义操作复制和删除文件。 在 Windows XP 中,安装程序运行良好,但在 Vista 和 7 中,安装程序显示错误,因为它无法访问文件夹,但如果我以管理员身份运行安装程序,则一切正常。

因此,我需要安装程序能够以管理员身份运行自定义操作,即使 MSI 没有以这种方式运行(需要安装程序由普通用户运行)。我尝试在安装开始时使用 EXE 来修改注册表并允许 MSI 正常运行,但我认为这不是一个很好的解决方案。

附言。由于客户要求,引导程序不是一个选项:S 我的所有自定义操作都被推迟并模拟=“否”

有什么想法吗? 谢谢

I have an installer that needs to access the registry and copy and remove files using custom actions.
In Windows XP the installer works just fine, but in Vista and 7, the installer shows an error because it cannot access a folder, but if I run the installer as administrator everything works.

So, I need the installer to be able to run the custom action as administrator even if the MSI wasnt run this way (need the installer to be run by regular users). I tried using an EXE at the beginning of my installation to modify the registry and allow the MSI to run normally but I dont think that's a very good solution.

PS. Bootstrapper is not an option due to client requirements :S
All my custom Actions are deferred and impersonate="no"

Any ideas?
Thank you

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

心房的律动 2024-11-04 05:14:38

请确保:

  • 安排在 InstallInitialize 之后
  • “执行”属性设置为延迟
  • “模拟”属性设置为

请注意,延迟的自定义操作无法访问安装会话,因此您无法直接访问安装程序属性。

Make sure that:

  • it's scheduled after InstallInitialize
  • "Execute" attribute is set to deferred
  • "Impersonate" attribute is set to no

Please note that deferred custom actions cannot access the installation session, so you cannot access installer properties directly.

怎言笑 2024-11-04 05:14:38

您的自定义操作必须在 InstallInitializeInstallFinalize 操作之间排序。

运行安装程序时是否出现UAC提示?如果您执行每台计算机安装,当您单击向导中的安装按钮时,您将收到UAC提示。如果没有收到 UAC 提示,请检查 ALLUSERS 属性设置为 2。另请参阅标记权限MSI

Your Custom Actions must be sequenced between InstallInitialize and InstallFinalize actions.

Do you get UAC prompt when you run the installer? If you perform a per-machine install, you would get UAC prompt when you click Install button in the wizard. If you don't get UAC prompt, then check ALLUSERS property is set to 2. See also Marking the Privileges for an MSI

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文