软件自动更新

我们正在用C#开发一个基于Windows的应用程序。 我想为软件提供自动更新。 事实上,一旦用户运行该程序,它应该能够通知用户它将从服务器获取最新版本。 我们通过使用Visual Studio安装程序创build者创build了我们的安装程序。 然后软件可以捕获是否有任何更新的版本。 我们正在为所有用户提供支持,如果有任何更新,我们会更新他们的服务器。 如果有更新,我们可以更新用户数据库中的条目。 我现在的问题是,我应该在哪里存储用户的最新更新。

我的初始方法是将更新后的安装文件存储在其服务器的共享文件夹中。 但是我们公司在过去也遇到了很多麻烦。 所以,我不得不放弃这种做法。 我现在想的是在SQL Server中上传可执行文件。 我们的设置文件目前是60Mb,但将来可能会增加超过100Mb。 你怎么看? 这是一个可行的解决scheme吗? 你有什么更好的想法?

试试NetSparkle 。 它是一个易于使用的.NET开发人员的软件更新框架。

不知道为什么你不喜欢clickonce,就很难给出任何有意义的答案。 就个人而言,我发现虽然clickonce对于所有的部署都不是很好,但对很多人来说都是非常好的,而且在很多情况下,它不被采用,因为开发人员不知道如何配置它或者从中获得最大收益。

如果你真的不能使用clickonce,看看谷歌的项目奥马哈 ,这是一个整洁的自动更新,已经安装在任何运行Chrome的Windows计算机上。

最后,如果您打算自己推出,我可能不会建议将其存储在SQL server中,而不必首先检查,看看这会如何影响您的备份和复制策略。 我真的不知道你会通过HTTP,UNC,FTP或类似的存储区域获得什么优势。

不要在数据库中存储一个大的可执行文件。

我相信你可以找到一个预先构建的解决方案,但是如果你决定自己编写,你可以考虑简单地在你部署的服务器上存储一个指向最新版本的URL。 客户端上的更新软件只需对该服务器进行身份验证,即可下载新版本,然后进行安装。