更新应用的最佳方式

时间:2010-07-11 16:00:40

标签: .net wpf clickonce

我正在使用WPF技术开发游戏。 我想每隔三天为游戏添加新功能。 更新的大小对我来说很重要。 我的游戏需要上网才能开始。像在线游戏。 另一个挑战是更新的大小。 最重要的说明: 我需要更新程序不需要停止。 你的建议是什么? clickonce是不错的选择? 谢谢你的关注。 请给我指导。

2 个答案:

答案 0 :(得分:1)

据我所知,clickonce不会做你想要的。

一个选项是获取文件差异应用程序的源代码并对其进行翻译以比较二进制文件的字节数(V1.0和V1.1为了参数)。

然后,您将制作一个说明文件,说明如何使用此差分程序的输出将V1.0转换为V1.1。

然后你需要编写一个更新程序应用程序,它接受升级指令并将V1.0转换为V1.1。

这样只通过线路而不是整个程序发送了已更改的字节

看看这个:http://www.codeproject.com/KB/files/LPTextFileDiff.aspx

希望这会有所帮助: - )

答案 1 :(得分:1)

ClickOnce部署执行增量更新。部署更新时,如果文件的日期/时间戳和哈希值与上一版本相同,则ClickOnce会将它们从缓存版本复制到新版本,而不是通过Internet复制它们。

如果您在一个解决方案中有多个项目,ClickOnce将每次都部署这些项目,因为在构建解决方案时会重新编译和重新编译它们。但是如果您有不认为会发生很大变化的项目,您可以将它们放在单独的解决方案中,构建它们,并将dll包含在主应用程序中。然后,每次发布时都不会重建和重新发布,也不会再次在互联网上复制。

至于从互联网开始,您可以指定应用程序仅在线运行,这要求用户能够连接到deploymnet清单(.application文件),并且每次他都能够检查更新跑吧。

请注意,大多数人将ClickOnce设置为检查更新并在运行之前安装它们,这可确保客户始终运行最新版本。

我不确定这意味着什么:“我需要更新程序不需要停止”。

如果要在不强制用户关闭的情况下更新ClickOnce应用程序,可以使用编程API检查更新并进行安装,但必须重新启动应用程序才能安装更新。 (Application.Restart())。