windows 在没有管理员权限的情况下使用.NET Framework部署应用程序

ecbunoof  于 2023-10-22  发布在  Windows
关注(0)|答案(1)|浏览(168)

我工作的公司开发了一个应用程序,随着时间的推移,它积累了一堆依赖项:

  • .NET 3.5更新
  • .NET 4.0更新
  • VC++ Redist
  • VC++ Redist
  • VC++ Redist 2015
  • 我们的专有设备驱动程序

然后将所有内容打包到Inno Setup可执行文件中并分发给客户端。最近,有人指出需要一种自动更新机制,这会导致我们遇到特权问题。以下是我需要满足的一些产品需求(但我不知道如何满足):

  • Windows XP(和产品)必须支持旧版硬件和软件(即Windows XP及更高版本)
  • 安装(包括自动更新安装)可能只需要一次管理员登录(在首次安装期间)。这意味着自动更新安装程序必须能够在非管理员帐户下以静默方式运行。
  • 安装程序应安装到{commonappdata}文件夹(锁定),最终应用程序的行为应与此相同
  • 依赖项必须包含在应用程序安装程序中。它们不需要包含在自动更新安装程序中。

乍一看,这似乎是微不足道的,但我尝试的每一个组合,我都会在安装或更新时遇到“访问拒绝”消息。有没有人知道一个可靠的方法来做到这一点?

ltqd579y

ltqd579y1#

如果没有管理员权限,则无法更新安装到仅管理员文件夹中的应用程序。
实现此类应用程序自动更新的唯一方法是实现Windows Update、Mozilla维护服务、Google Chrome Elevation Service、Adobe Chrome Update Service和类似服务的功能:

  • 第一次使用管理员权限安装时,请使用管理员权限安装服务。
  • 要么让服务本身定期检查更新并启动自动更新;
  • 或者,如果您需要触发更新,API为某人(例如,应用程序本身在没有管理员权限的情况下运行)可以调用以触发自动更新。
  • 安装具有管理员权限的服务到客户端系统是一个巨大的违规行为。因此,如果您决定这样做,请确保您做得200%正确,而不是在客户端系统中引入安全漏洞。

相关问题:

相关问题