WPF .Net Core-后台更新应用程序

问题描述

我正在开发WPF .Net Core应用程序,现在我正在寻找一些解决方案,以在发布该应用程序后对其进行更新。我的要求是:

  • 未发布存储;
  • 不需要自动更新功能
  • 该设备应在没有互联网的情况下正常工作和更新;
  • 更新应首先选择一个更新文件
  • 更新应在没有任何用户界面的情况下在后台进行;
  • 该应用必须始终处于打开状态,可以添加重新启动以便进行更改(如果需要);

我研究过ClickOne,MSIX,Squirrel等都没有成功。

有没有经验丰富的人可以给我一些指导?

解决方法

您可以从文件夹中运行应用程序,而无需注册任何exe或dll。

可以进行文件复制。

如果可用,则可以使用AD服务器软件(例如SMS)来推送安装新版本。也许这是仓库或核设施中的一台PC,完全没有空气。

我建议采用的方法是将应用文件复制到用户的应用数据中。 EXE,DLL配置只是文件复制所有。进入v1文件夹。

当用户获得新的USB版本时,您会将其复制到v2文件夹中。

然后重新启动应用程序就是从最高版本文件夹中运行exe的问题。这意味着一个小型加载器应用程序或使用当前位置更新注册表,因此当他们启动xxx时,它将从那里确定位置。如果他们不能更新注册表,这可能不切实际。

您可以使用mef更加复杂的方法。

使入口点mainwindow非常简单,并承载动态发现的dll内容。可以从最高版本的文件夹中找到它们。 可以从那里加载资源字典,并以未编译的原始xaml文件的形式或在用户控件库中的形式提供。

因此,您的主要功能将转移到用户控件库中。 实际的exe文件很少。

您可能想在这里考虑PRISM的全部内容,从而可以动态加载Shell和所有内容。如果您还没有这样做,那么值得一提的是要使该功能正常运行,需要一定数量的PRISM知识。