基本上,我有一个安装在用户计算机上的应用程序。
用户使用的是 Windows 7。用户没有获得管理员访问权限。但是,该应用程序需要能够将文件保存到它自己的 Program Files 目录中。
我想走的路是:
- 下载各种二进制文件(网络服务)。
- 将二进制文件写入临时文件夹中的文件。
- 启动控制台应用程序。(控制台应用程序等待主应用程序关闭)
- 控制台应用程序将临时文件复制到 Program Files 目录。
- 控制台应用程序重新启动主应用程序。
- 控制台应用程序关闭。
问题是我知道 Windows 7 不允许未以管理员身份运行的应用程序写入 Program Files 目录,并且我理解原因(出于安全考虑),但是由于我自己编写此应用程序,因此我自己将其安装在机器上,有没有办法让我的应用程序能够写入它所在的任何目录(独立于平台,因为它使用相对路径)而没有弹出框要求以管理员身份运行应用程序?不能将应用程序签名为始终以管理员身份运行吗?
事实上,我什至不需要主应用程序是具有管理访问权限的应用程序。我需要控制台应用程序(复制临时文件的应用程序)才能将这些临时文件复制为永久文件。
更新:是的,这是一个自动更新应用程序。我考虑过 ClickOnce 之类的,但还有一些额外的要求导致我创建自己的内部更新,主要是因为更新需要是静默的,并且是逐个更新的。有时(取决于更新的部分)应用程序需要关闭、移入文件、重新启动。其他时候,应用程序只需将文件移入并继续运行。
ClickOnce 只是不适合我的情况,我们的组织正在内部寻找一些东西,以便可以对其进行定制以满足我们未来的需求。