gpt4 book ai didi

c# - 根据权限设置默认安装目录

转载 作者:太空狗 更新时间:2023-10-30 01:12:37 24 4
gpt4 key购买 nike

我正在尝试使用 Wix# 构建 MSI 安装程序,与 Wix 相比,我对易于使用的语法非常满意。

现在,我正在尝试做一些不合标准的事情,但我有点迷茫,因为我并不真正熟悉 Wix。

基本上,我想根据安装程序是使用管理员权限调用还是由默认用户安装来设置默认目标安装目录。

作为普通用户,我想将默认安装目录设置为 %LocalAppData%\MyProduct,而作为管理员,默认安装目录应为 %ProgramFiles%

使用普通 Wix 似乎有一个 solution , 这是可管理的。

如何,这可以通过使用 Wix# 来完成吗?

我不得不说,我真的很缺乏独自完成这项工作的技能,因为我对 WiX、Msi 甚至 C# 都不是很深入。因此,我正在为我的问题寻找一个最小的、可重现的解决方案

最佳答案

在您链接的示例中(由 WiX 的作者),它显示了如何根据每个用户或每个机器设置目录:

<DirectoryRef Id="TARGETDIR">
<Directory Id="ApplicationFolder" Name="App" />
</DirectoryRef>

如果它是管理员安装它的每台机器,如果它不是管理员则默认是每用户:

<CustomAction Id="PerMachineInstall" Property="ApplicationFolder" Value="[ProgramFilesFolder]\[ApplicationFolderName]" Execute="immediate" />
<CustomAction Id="PerUserInstall" Property="ApplicationFolder" Value="[LocalAppDataFolder]\Apps\[ApplicationFolderName]" Execute="immediate" />

您应该能够更改 [LocalAppDataFolder]\Apps\[ApplicationFolderName][LocalAppData]\MyProduct

代码的问题在于 <Directory Id="ApplicationFolder"是小写的。

根据 https://wixtoolset.org/documentation/manual/v3/xsd/wix/setdirectory.html

The directory ID must be all uppercase characters because it must be passed from the UI to the execute sequence to take effect.

相关:Wix - Setting Install Folder correctly

关于c# - 根据权限设置默认安装目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57572916/

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