问题描述
我正在开发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知识。