我即将发布应用程序的Beta版本,并希望确保可以远程更新它,并在应用程序中通知用户存在更新。理想情况下,我想强制更新,如果可能的话。我目前正在使用与VS2010一起打包的InstallShield LE来构建我的安装exe文件。
我的计划是创建一个wcf Web服务,它将提供所有产品版本的XML表现形式。 我不确定的是如何提供更新。我能想到的选择是
有没有人想过哪个选项最好以及如何实现?我是否需要某种代码签名并在客户端检查安全性?
感谢您的帮助。
编辑 - 应该提到ClickOnce不是一个选项。主要是因为它不够定制,不适合我们的外观和感觉。还有ClickOnce的其他几个问题,我不会在这里讨论。
答案 0 :(得分:2)
几年前我遇到了类似的情况,我们正在开发一种带有几个可选松散耦合组件的产品。我们最终做的是当应用程序启动时,它会检查我们的“UpdateService”并匹配元数据。
如果应用程序未更新,我们将启动一个单独的进程来更新XML并从我们的更新服务中删除字节数组中的DLL,该服务将XML和更新的DLL复制到相应的文件夹中。
当时对我们有用。部分原因是客户端可能会升级功能,我们可能需要下载其他DLL。
然而,应用程序的第一次安装是通过安装程序(exe)。
挑战在于我们必须编写自定义内容以及适当的管理或版本的补丁/程序集。但这足以让他们考虑并满足产品经理
答案 1 :(得分:1)
答案 2 :(得分:0)
除非你进行了影子复制(http://msdn.microsoft.com/en-us/library/ms404279.aspx),否则你无法就地“替换”文件。如果你没有使用ClickOnce,你必须有一些方法来“检查”如果有更新,应用程序。我认为WCF对此有点过分;您可以只使用一个已知的URL来获取可与应用程序中的版本号进行比较的“版本号”,以及获取“最新”版本的已知URL ...大多数应用程序只需下载MSI并询问用户执行它。