我正在定制WPF应用程序的ClickOnce部署,并且希望确保我不会错过关于该过程的某些内容。据我所知,ClickOnce将处理安装应用程序,并可选择在启动时检查更新,还可以选择在应用程序启动后按设定的时间间隔检查更新。这可以在没有任何自定义代码或定制的情况下完成。自定义ClickOnce的“Update at Statup”功能
如果我们想要我们可以通过编写我们自己的“安装”程序来定制安装过程。它可以是使用以下演练的标准WPF应用程序。这是正在安装的应用程序的单独项目。
演练:Creating a Custom Installer for a ClickOnce Application
我们可以这样通过实施以下演练的代码建立一个“检查更新”功能。
如何:Check for Application Updates Programmatically Using the ClickOnce Deployment API
什么我不知道的就是我们能在那里定制的ClickOnce检查在启动更新,因为用户点击快捷方式打开应用程序的一部分吗?我喜欢每次用户打开应用程序时检查更新的想法,但我想完全自定义该过程。据我所知,似乎没有办法自定义ClickOnce在启动时检查更新的部分。有人可以验证吗?
如果无法自定义“启动时更新”过程,那么我看到的一个替代方法是根本不使用ClickOnce,编写自己的自定义代码来处理安装,检查启动时的更新以及检查更新应用程序正在运行。
SO上有一些其他帖子提出类似这样的问题。
Customize clickonce download screen
我的应用程序有一个动态的闪屏。我可以更改该启动画面以显示诸如Checking for updates…
之类的消息,如果找不到任何消息,请继续加载该应用程序。如果发现更新,然后强制应用程序重新启动?这里的缺点是我们会看到两次启动画面。
如果这是我自己定制的过程,那么我会有两个EXE,一个是MyApplicatoinUpdate.exe
,第二个是MyApplication.exe
。快捷方式将启动MyApplicationUpdate.exe
执行Checking for updates
,如果找到一些然后下载它们(文件尚未使用)。如果没有找到更新,则启动MyApplication.exe
并让MyApplicationUpdate.exe
自行关闭。最后更新updater将这个逻辑放在MyApplication.exe
。不知道ClickOnce
是否会允许我定制它。
感谢, -Eric