.网2.0的流程提升的程序,安装
-
23-09-2019 - |
题
我们有一个应用程序编写的两C++。净,安装中的所有用户的程序文件夹。这个应用程序下载新版本的本身(作为MSI安装人员)和产卵的新安装的进程来代替本身。
安装过程中作为它的存在的今天:
- 复制一个安装管理应用程序(C#.网2.0)的临时目录。这叫'管理'
- 经理是执行与提升privs 每个这篇文章.
- 原来的应用程序退出。
- 管理产生的MSI安装(与高privs,由于复制是提升)
- 管理产生的新版本的应用程序。
错误:
新安装应用程序正在运行,在提升的状态。这引起的问题我不一一列举这里。
理想情况下,推出的新安装应用程序,将运行该权限的原来用户。
我不知道如何降级的应用程序后被标准的用户之后的上升。
一个不优雅黑:
(是啊,是啊,这整个过程是不优雅的呢)
- 复制的安装管理的临时目录
- 运行安装的管理标准的用户privs.让我们叫这个实例'LowlyManager'.
- 原来的应用程序退出。
- LowlyManager产生的应用程序 再一次, 这次与高privs.让我们来命名这个实例'UpperManagement'
- UpperManagement产生物安装者
- UpperManagement正常退出,返回的出口码的安装。
- LowlyManager解释错误代码从UpperManagement,并产生新安装应用程序。这段时间作为原始调用者。
有没有更好的方式做到这一点?
(我已经留下了一堆的其他细节之前和之后的这些步骤,使该过程更加顺利于用户,但是这应该是足够的了解问题的核心,我想到解决。)
其他要求:
- 我们不可能安装的每用户应用程序
- 用户不应该出现一个身份验证对话框如果UAC会只是问"你确定要允许的?"。我认为这可能会杀了一个解决方案使用WindowsImpersonationContext,但我不肯定。
- 该系统需求的工作XP、Vista和Windows7(即使是有一个单独的进程XP)。
不隶属于 StackOverflow