【问题标题】:How can I create a windows installer MSI that does not require admin access using setup project?如何使用安装项目创建不需要管理员访问权限的 Windows 安装程序 MSI?
【发布时间】:2021-12-26 14:53:25
【问题描述】:

这个问题帮助我创建了一个 MSI 文件 - https://docs.microsoft.com/en-us/answers/questions/256664/is-it-possible-to-create-a-setup-filemsi-in-visual.html 现在,我如何创建不需要管理员权限的安装程序?

【问题讨论】:

  • 您认为系统允许非管理员安装软件是明智的吗?
  • @FranzGleichmann 我必须创建一个 MSI 安装程序,无需输入管理员凭据即可为我的组织中的标准用户安装,这可能吗?如果是,我该如何创建这样的 msi?谢谢。
  • 更好的解决方案可能是通过域推出 msi - 向本地 Windows 网络管理员寻求帮助
  • @absolutealgorithm 一种方法是使用 WiX 工具集而不是 Microsoft Visual Studio 安装程序安装项目并使用 non-Admin 安装。

标签: c# visual-studio windows-installer setup-project


【解决方案1】:

免责声明:MSI 是一项古老的技术,其按用户(非管理员设置)的实现并不理想(severe technical limitations / restrictions强>、poor servicing for patching and upgradesetc...)。我建议使用其他一些部署机制,例如MSIX or AppV


Non-Admin MSI / Per-User MSI:尽管如此,这里有一些关于每用户安装主题的 cmets 以及使用 WiX 制作的示例:

【讨论】:

    【解决方案2】:

    Windows Installer 项目将创建一个 MSI 文件,允许用户在安装过程中选择安装类型、按用户或按机器。

    Windows 安装程序根据 ALLUSERS 属性的值、MSIINSTALLPERUSER 属性的值和操作系统。

    ALLUSERS 属性的值在安装时确定安装上下文。

    1ALLUSERS 属性值指定 per-machine 安装上下文。

    空字符串 ("") 的 ALLUSERS 属性值指定 per-user 安装上下文。

    因此,在 Windows Installer 项目 中,您需要将 ALLUSERS 属性定义为空字符串,以便进行 per-user 安装。请确保生成的安装程序不包含在 HKLM 上创建的任何注册表,或不将任何文件安装在需要管理员权限的位置(例如 ProgramFiles)。由于安装程序没有管理员权限,安装会失败。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-25
      • 2010-09-09
      • 2014-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-23
      相关资源
      最近更新 更多