【发布时间】:2021-10-12 23:59:02
【问题描述】:
我们有一个桌面应用程序,我们希望将其部署到我们的客户机器上(其中很多,在本地以及其他办公室)。我们目前正在使用 CI 来创建安装程序,但将软件安装到客户端机器上似乎需要做很多工作。此外,由于桌面应用程序是新的,我们期待更多的功能和改进。
是否可以在客户端计算机上执行桌面应用程序的持续部署?每次我们推送新版本时,所有已安装的应用程序也会更新。
【问题讨论】:
-
有多种方法可以解决此问题,主要取决于您希望客户端接收更新的方式。手动获取新软件?启动时自动更新(想想 chrome),还有别的吗?当您谈论外部安装的软件时,“CD”是指使软件可供下载,而不是强制安装在其他人的计算机上。
-
解决此问题的一种方法是构建自定义加载器。用户不是运行应用程序,而是运行加载程序应用程序。这将检查是否有来自某些可配置源的更新版本的 dll。然后运行您的应用程序。通常入口点 exe 是最小的,并从 dll 加载所有内容。一个变体省略了单独的加载程序,但仍然有一个非常小的 exe。当应用程序运行时,它会在后台下载 appdata 中所有 tona 文件夹的新版本。当您启动时,它会检查上次运行时是否有更新的版本。
标签: c# wpf azure-devops continuous-integration continuous-deployment