WiX-在安装时提升(或降低)权限

WiX-在安装时提升(或降低)权限,wix,windows-installer,vdproj,Wix,Windows Installer,Vdproj,我正在从事一个项目,该项目使用2个VD项目来分发安装的管理员和用户版本,现在我需要切换到WiX。这是一个有点痛苦的经验,缺乏文件和所有,但我设法使它的东西 然而,仍然存在一个问题:我只想制作一个.msi,它允许用户选择是以管理员身份安装还是以用户身份安装。如果他选择用户,我不想要求他提升(因为他不需要提升),如果他选择管理,我也不想安装崩溃,而是要求特权 如果我将InstallPrivileges设置为limited,则我当前的解决方案在管理模式下崩溃,因为用户没有安装权限,如果我将其设置为el

我正在从事一个项目,该项目使用2个VD项目来分发安装的管理员和用户版本,现在我需要切换到WiX。这是一个有点痛苦的经验,缺乏文件和所有,但我设法使它的东西

然而,仍然存在一个问题:我只想制作一个.msi,它允许用户选择是以管理员身份安装还是以用户身份安装。如果他选择用户,我不想要求他提升(因为他不需要提升),如果他选择管理,我也不想安装崩溃,而是要求特权

如果我将
InstallPrivileges
设置为
limited
,则我当前的解决方案在管理模式下崩溃,因为用户没有安装权限,如果我将其设置为
elevated
,则在用户模式下提示提升

我的观点是,由于与MSI的兼容性,没有办法解决这个问题,但也许有某种方法可以在安装时间内将权限从提升更改为有限,我没有这样做

总之,我想知道这些事情:

  • 是否可以在安装时更改权限
  • 如果无法解决此问题,那么解决此问题的最佳方法是什么(导出2.msi文件或其他文件)

    • 一种解决方案是构建两个独立的安装程序,然后通过自定义WiX引导程序(又称Burn)启动它们。引导程序将负责显示UI并启动相应的.msi


      或者,如果用户选择管理员安装,您可以将“admin”功能分离为单独的.msi,然后使用自定义引导程序安装这两个.msi。

      谢谢您的回答!您是否知道是否有一种方法可以在原始构建运行后重新运行Voctive命令行(编译和链接),只使用更改后的
      Product.wxs
      文件?不确定。我要做的是为您的项目/解决方案创建两种不同的配置。在“项目属性”>“生成”中,仅为其中一种配置定义预处理器变量。然后Product.wxs可以根据预处理器变量的设置包括/排除项。