wix工具集-刻录-没有更新所需的管理员权限

wix工具集-刻录-没有更新所需的管理员权限,wix,windows-installer,bootstrapper,burn,rights,Wix,Windows Installer,Bootstrapper,Burn,Rights,我有一个wix包(带有托管引导程序),包括 4exe软件包(第三方设置-所有perMachine) 1MsiPackage(我们的应用程序设置) 因为我们一个月更新应用程序多次,所以我们不希望用户每次更新都需要管理员权限。通常只需要更新我们的应用程序,因为第三方很少更改(在更新过程中,如果他们没有更改,则会跳过) 为了达到我们的最低管理权限目标,我们认为最好安装到%LocalAppData%(perUserinstallation)中。然后,我们将只需要管理员的权利更新,如果任何第三方已经改

我有一个wix包(带有托管引导程序),包括

  • 4
    exe软件包
    (第三方设置-所有
    perMachine
  • 1
    MsiPackage
    (我们的应用程序设置)
因为我们一个月更新应用程序多次,所以我们不希望用户每次更新都需要管理员权限。通常只需要更新我们的应用程序,因为第三方很少更改(在更新过程中,如果他们没有更改,则会跳过)

为了达到我们的最低管理权限目标,我们认为最好安装到
%LocalAppData%
perUser
installation)中。然后,我们将只需要管理员的权利更新,如果任何第三方已经改变。但是,如果我们的客户希望在终端服务器上安装我们的应用程序,他肯定希望只为所有用户安装一次。因此,我们的文件应该安装到
C:\ProgramFiles(x86)
perMachine
installation)中

为了涵盖这两种情况,我们制作了一个
两用软件包
。在这里,我们可以在运行时决定需要哪种类型的安装

问题:在stackoverflow上,Burn(wix boostrapper engine)无法处理
两用软件包
。(当我意识到这一点时,我简直吓坏了)

我的问题:有解决办法吗?有没有其他可能达到我的目标?可能是在终端服务器上安装的另一种解决方案。我现在卡住了。我不想“安装”我们的应用程序使用自解压存档或类似的东西,而不是msi包

新方法1:另一种方法是更新服务。在初始安装时,我们可以将应用程序文件安装到
C:\ProgramFiles(x86)
,然后安装一个在
LocalSystem
下运行的更新服务。如果有可用的更新,我们作为
LocalSystem
运行的更新服务将有足够的权限进行更新。这样的东西已经有了吗?它不一定是免费的,但我找不到任何东西:(

新方法2:我可以向捆绑包中添加一个新的“虚拟”msi包,该包从未安装过。在这个包中,我将
InstallScope
设置为
perUser
。这将在编译时强制捆绑包成为
perUser
捆绑包。下面是将发生的情况(根据用户在引导程序ui中选择的选项)

  • 案例1-用户选择
    perUser
    安装:一切正常。我们的捆绑包固定为
    perUser
    ,我们的
    两用包(应用程序msi)在
    perUser
    模式下执行(参数msisInstallPeruser=“1”)。一个干净的
    perUser
    安装,很好
  • 案例2-用户选择
    perMachine
    安装:我们的捆绑包仍然只为当前用户安装(修复了
    perUser
    捆绑包)。因此只有当前用户才能在“程序和功能”中看到我们的捆绑包再说一次,他可以卸载捆绑包。这不好。不管怎样,我们的应用程序msi安装了
    perMachine
    (参数“msinstallperuser=”“)。不好,但也没有灾难(或者我遗漏了什么?)
在我看来,第二种方法是一个不错的解决方案。如果有一天
Burn
将获得对
双用途软件包的支持,我将不得不放弃当时不必要的虚拟msi软件包,一切都会好起来

提前非常感谢你们