如何使 WPF 应用程序 运行ning 成为用户,启动更新程序提示提升权限,然后在更新后再次以用户身份拥有更新程序 运行 WPF?
How do I make WPF app running as User, launch Updater prompting for escalated privileges, then have Updater run WPF after update as User again?
两个申请; WPF 应用程序和控制台更新程序。 WPF 由用户启动,检查是否有要执行的更新,启动带有升级提示的更新程序,以便它可以替换 WPF 应用程序(和支持文件)。更新程序替换文件后,希望它以原始用户身份启动 WPF 应用程序。如果有人想知道我必须升级 Updater 的权限,因为它正在替换安装 WPF 应用程序的 Program Files 文件夹下的文件。
使用进程 class 以管理员身份启动更新程序。这将显示 UAC,用户可以决定是否允许更新程序 运行。然后您可以退出原来的程序。在更新结束时,在没有管理员权限的情况下执行相同的操作以再次启动您的软件。
How to start a new process without administrator privileges from a process with administrator privileges?
我不喜欢这些答案中的任何一个,但它们会起作用。最好使用常规 windows 安装程序技术(Wix,或许多其他软件包之一)部署更新,并且作为该过程的一部分,让它在升级后重新启动原始程序。这是您在大多数软件中看到的方法。无论如何你都需要编写一个安装程序才能将软件安装到计算机上,只需在最后添加一个启动软件的步骤即可。
两个申请; WPF 应用程序和控制台更新程序。 WPF 由用户启动,检查是否有要执行的更新,启动带有升级提示的更新程序,以便它可以替换 WPF 应用程序(和支持文件)。更新程序替换文件后,希望它以原始用户身份启动 WPF 应用程序。如果有人想知道我必须升级 Updater 的权限,因为它正在替换安装 WPF 应用程序的 Program Files 文件夹下的文件。
使用进程 class 以管理员身份启动更新程序。这将显示 UAC,用户可以决定是否允许更新程序 运行。然后您可以退出原来的程序。在更新结束时,在没有管理员权限的情况下执行相同的操作以再次启动您的软件。
How to start a new process without administrator privileges from a process with administrator privileges?
我不喜欢这些答案中的任何一个,但它们会起作用。最好使用常规 windows 安装程序技术(Wix,或许多其他软件包之一)部署更新,并且作为该过程的一部分,让它在升级后重新启动原始程序。这是您在大多数软件中看到的方法。无论如何你都需要编写一个安装程序才能将软件安装到计算机上,只需在最后添加一个启动软件的步骤即可。