无法将msi作为administartor运行

时间:2016-02-24 21:54:18

标签: wix

我写了一个处理注册表的msi。所以,我必须以管理员身份运行msi。

当我直接点击并启动Msi时,我得到以下错误来修改ini文件“访问路径被拒绝”

如果我从命令提示符启动msi(以管理员身份右键单击),它可以正常工作。

我尝试了以下所有建议,但没有一个是有效的。请协助如何以管理员身份运行msi。

Package Id =“*”InstallerVersion =“200”Compressed =“yes”Platform =“$(var.Platform)”InstallPrivileges =“elevated”AdminImage =“yes”InstallScope =“perMachine”

CustomAction Id =“UpgradeSelectedVersion”BinaryKey =“CustomAction”DllEntry =“UpgradeSelectedVersion”Execute =“deferred”Impersonate =“no”

Property Id =“ALLUSERS”Value =“1”

Property Id =“ALLUSERS”Value =“2”

2 个答案:

答案 0 :(得分:0)

尝试以下方法:

<Property Id="MSIUSEREALADMINDETECTION" Value="1" />

否则,您可以将安装程序包装在wix托管引导程序应用程序中,但需要更多工作。然后将设置添加到清单文件中。

答案 1 :(得分:0)

该自定义操作被延迟,这意味着它必须在InstallExecuteSequence中运行,如果您有每台计算机的InstallScope和提升的权限,则应该使用系统帐户升级并运行该操作。

  1. 不要混淆ALLUSERS属性,因为WiX只做正确的事情。每台机器的InstallScope和提升的权限将使其工作。如果你不小心将它变成了每用户安装,那么它就不会被提升而且会失败。

  2. 您应该在UI序列之后看到UAC提升对话框。如果您没有看到此对话框,则不会提升安装。同样,这可能与您更改ALLUSERS有关。如果您在静默模式下安装它,那么它也将失败,因为静音确实意味着无声,并且它不会显示高程对话框,并且您的CA不会升级。

  3. 您失败的自定义操作可能不是您发布的操作,这是延迟的,因此在提升提示之后。如果您在UI序列中有自定义操作,那么它将不会被提升(除非您从提升的提示符运行MSI),这可以解释您所看到的问题。