我正试图了解如何保持一个正在运行的应用程序,与clickonce版本保持同步......
我的应用程序需要每天24小时运行,但是,当我推出更新时,我希望软件注意到有更新,更新自身,并重新启动新版本。
如果可能,我无法解决问题?
非常感谢任何提示/提示。
由于
答案 0 :(得分:1)
我们正在从控制台使用MAGE来自动生成应用程序和部署清单。不幸的是,它的API不允许我们按照你的要求去做。所以我们使用Powershell自动生成清单。首先它运行mage来生成清单。然后它打开生成xml文件并稍微修改它,然后签名。
这种清单按摩的目的是使标签看起来像这样:
<deployment install="true" trustURLParameters="true" mapFileExtensions="true" minimumRequiredVersion="1.0.0.1140">
<subscription>
<update>
<beforeApplicationStartup />
</update>
</subscription>
让我们来看看。
元素的内部元素告诉应用程序每次启动时都会自行更新。如果服务器关闭,更新将失败,但应用程序将从本地PC运行,因为它已安装。
有关此元素的更多信息:http://msdn.microsoft.com/en-us/library/t7050f3w.aspx
谨慎。永远不要回到版本。版本号是有意义的。一旦达到某个数字,如5,则永远不会回到4,否则应用程序将无法运行。如果您考虑使用符号链接在Web服务器上部署应用程序,这一点很重要。您可能认为创建“prod”链接并将其指向版本5将使您能够快速回滚到版本4,如果版本5是错误的。不是这样的。您需要使用错误修复或与版本4相同的代码构建版本6.
使部署工作后,使用应用中的ClickOnce API检查更新:
http://msdn.microsoft.com/en-us/library/ms404263.aspx
请注意这个电话:
Application.Restart();
你需要拉入WinForms库才能使用它,但效果很好。