gpt4 book ai didi

wix - 在打开 UAC 的情况下编辑 ProgramFiles 中的配置

转载 作者:行者123 更新时间:2023-12-02 20:17:42 25 4
gpt4 key购买 nike

我的问题与 Launch application after installation complete, with UAC turned on

我们不想在安装程序中构建一组复杂的配置屏幕,而是希望在安装程序完成后启动配置过程。

在所有情况下,这都需要编辑 ProgramFiles 文件夹中的内容,当启用 UAC 且未提升权限时,标准用户无法编辑这些内容。

我们知道但不喜欢使用的选项:

  • 通过 Bootstrap 提升整个安装程序 - 我们不希望这样做是为了支持在提升结束时执行配置的 1 个操作。
  • 在配置过程中包括强制提升 - 虽然在某些情况下我们可以将其应用到应用程序中,但在某些情况下,我们希望在 App.config 上启动一个简单的编辑器,而这种强制提升将不是一个选项。

有没有办法获得提升版本

<Property Id="WixShellExecTarget" Value="[INSTALLDIR]\app.config" />
<CustomAction Id="LaunchApplication" BinaryKey="WixCA" DllEntry="WixShellExec" />

或者更合适的是制作自定义 UI 并在 UI 中较早添加复选框,然后将其作为延迟操作启动而无需等待,例如

<CustomAction Id="Config.SetProperty" Property="Config" Value='"Open" app.config' />
<CustomAction Impersonate="no" Execute="deferred" Return="ignore"
Id="Config" BinaryKey="WixCA" DllEntry="CAQuietExec" />

或者我们只是忘记这一切是一个坏主意,管理员可以找到该文件并右键单击“提升”进行编辑。

最佳答案

其中一个选项可能是像现在一样从安装程序中以非提升方式启动您的应用程序。然后,当您的应用检测到它需要编辑配置文件时,它会请求提升。

另一个选项是将配置文件存储在 ProgramData 目录中而不是 Program Files 中。该位置无需提升即可写入。这里需要注意的是:在那里创建的文件和目录仅对创建它们的用户具有写入/修改权限;其他用户将具有只读访问权限。如果不需要,您可以更改应用配置文件的 ACL。

关于wix - 在打开 UAC 的情况下编辑 ProgramFiles 中的配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5671153/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com