gpt4 book ai didi

.net - 编写我自己的自动更新程序

转载 作者:行者123 更新时间:2023-12-03 09:57:43 26 4
gpt4 key购买 nike

关闭。这个问题是opinion-based .它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.

2年前关闭。




Improve this question




在编写我自己的自动更新程序时,是否有我应该遵循的通用框架?

不久前,我正在阅读如何创建一个在主应用程序之前首先加载的“ bootstrap ”(因为由于文件锁定等原因,正在运行的应用程序无法更新)

那么有什么提示/最佳实践吗?

最佳答案

您可能必须自己编写。正如 FOR 所提到的,基本思想是将最新版本的程序(我假设是一个 EXE)放在服务器上,然后在服务器启动时让您的应用程序检查服务器,如果是,则从服务器下载 EXE较新的版本。

我通常将其实现为应用程序在启动时调用的 Web 服务。关于这种方法的几个警告:

  • web服务方法需要获取服务器上EXE的版本号,并与调用者的版本号进行比较。如果使用 Assembly 类读取服务器 EXE 的版本号,则只要 Web 服务实例正在运行(至少 20 分钟),就会锁定文件。因此,您有时可能无法将服务器上的 EXE 替换为较新的版本。改用 AssemblyName 类 - 这允许您在不加载程序集(并锁定它)的情况下读取程序集信息。
  • 调用者应用程序不能用新版本替换它自己的文件 - 您不能删除或更新正在运行的应用程序文件。但是,它可以做的是在运行时重命名自己的文件。所以自动更新的技巧是让应用程序重命名自己(例如“MyApplication.exe”到“MyApplication_OLD.exe”),将新版本下载到应用程序文件夹(名为“MyApplication.exe”),通知用户发生更新,需要重新启动应用程序,然后结束。当用户重新启动应用程序时,将启动较新的版本 - 此版本会检查并删除旧版本。

  • 进行这样的更新后自动重启应用程序的自动更新是非常棘手的(它涉及启动另一个进程,然后在自动重启进程启动之前结束它自己的进程)。我从未有过用户提示必须重新启动应用程序。

    关于.net - 编写我自己的自动更新程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/250175/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com