【发布时间】:2015-08-13 13:46:10
【问题描述】:
使用 WiX 3.8。我创建了一个应该为每个用户帐户安装的 MSI。我已将该 .msi 与引导程序项目中的其他先决条件链接起来。但是,在安装生成的 .exe 文件期间,我已提示输入管理员权限。当我输入管理员用户/通过时,应用程序安装在管理员帐户而不是用户的帐户下。如果我单独安装 .msi 包,则应用程序会在用户帐户下正确注册。知道如何处理吗?
MSI 包
<Package InstallerVersion="500"
Compressed="yes"
InstallScope="perUser" />
引导程序
<Chain>
<PackageGroupRef Id="Netfx4Full"/>
<PackageGroupRef Id="OpenXMLSDK"/>
<PackageGroupRef Id="SQLServerCompact_4.0"/>
<MsiPackage Id="MyApp" SourceFile="$(var.MyAddin.TargetPath)"/>
</Chain>
</Bundle>
【问题讨论】:
-
您的
<Package>有InstallScope="perUser"那么为什么<MsiPackage>的ForcePerMachine是yes(InstallerVersion设置为200而不是500)?解释:我在想this MSDN article。 -
我不确定,我这里没有 SDK 可以测试,但我会先将
InstallerVersion更改为500。 AFAIKInstallScope="perUser"(因为它会将MSIINSTALLPERUSER设置为1)仅从 5.0 版开始受支持。此外,如果<MsiPackage>是您的 WiX 项目(应该安装的项目perUser),那么您为什么要设置为ForcePerMachine?不应该默认no? -
根据您的建议 InstallerVersion="500" 和 ForcePerMachine 被删除..因此默认设置为“no”。但问题依然存在
-
问题:如果没有 Netfx4Full(当然需要管理员权限),您是否有同样的问题?
-
我必须以任何一种方式安装它,你能解释一下为什么你认为这是一个问题吗?正如你所见,我必须安装其他库,它们当然也需要管理员权限。