首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >应用程序如何自我更新?

应用程序如何自我更新?
EN

Stack Overflow用户
提问于 2017-11-09 21:39:56
回答 1查看 1.6K关注 0票数 1

作为Notepad++的粉丝,我已经看到,当出现新的更新时,会发生以下情况:

  • Notepad++告诉您有一个更新
  • 当您单击“好,让我们更新”时,它将连接到服务器
  • 它下载更新文件。
  • Notepad++已关闭,并开始运行更新文件。
  • UAC询问您是否要运行该文件。
  • 如果是,它将安装更新。
  • 您被要求重新运行Notepad++。

我想在我的.NET桌面应用程序中构建这个功能。我不知道的是文件下载后:

  • 我的应用程序将如何告诉操作系统运行更新文件?
  • 我的应用程序没有在计算机上安装文件的权限。它将如何绕过它?
  • 我的应用程序将如何关闭,因为在更新过程中,需要更改当前的应用程序?
EN

回答 1

Stack Overflow用户

发布于 2017-11-10 00:04:26

我的应用程序将如何告诉操作系统运行更新文件?

您的c#应用程序可以通过使用Process.Start方法(出现在System.Diagnostics中)轻松地调用其他进程,如果需要,甚至可以控制它。

我的应用程序没有在计算机上安装文件的权限。它将如何绕过它?

更新程序是一个单独的进程,它可以问自己管理员权限(通过调用UAC对话框)。

c#应用程序可以通过实现适当的app.manifest文件轻松地请求管理员权限:

在Visual中,您可以通过选择"Project“->添加新项”->应用程序清单“,打开它并更改此行来完成此操作。

代码语言:javascript
复制
 <requestedExecutionLevel level="asInvoker" uiAccess="false" />

有了这个

代码语言:javascript
复制
 <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

我的应用程序将如何关闭,因为在更新过程中,需要更改当前的应用程序?

您的更新程序应用程序可以在完成时关闭主进程,或者在更新程序完成后(使用某种类型的IPC)关闭自己。

另一种选择是从主应用程序中启动更新程序进程,然后立即关闭主应用程序。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47212019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档