.net 应用程序更新
本文关键字:更新 应用程序 net | 更新日期: 2023-09-27 18:33:42
我即将发布应用程序的 Beta 版本,并希望确保它可以远程更新,并在应用程序中通知用户更新存在。 理想情况下,如果可能的话,我想强制更新。我目前正在使用与VS2010打包的InstallShield LE来构建我的安装exe文件。
我的计划是创建一个 wcf Web 服务,该服务将提供所有产品版本的 XML 手册。我不确定如何提供更新。我能想到的选项是
- 提供新的安装盾安装程序 - 安装程序相当多比程序大,所以一旦安装程序,发送完整的安装程序似乎矫枉过正。
- 只发送微星文件 - 我不确定如何在VS2010中创建MSI安装程序。
- 下载新的应用程序文件(大约 7 10 Dlls(和将当前文件替换为新文件。
有没有人想过哪个选项是最好的以及如何实施它?我是否需要某种代码签名并在客户端检查安全性?
感谢您的任何帮助。
编辑 - 应该提到ClickOnce不是一个选项。主要是因为它的可定制性不足以适应我们的外观和感觉。 还有ClickOnce的其他一些问题,我不会在这里讨论。
几年前我遇到过类似的情况,我们正在开发一种具有几个可选松散耦合组件的产品。我们最终要做的是,当应用程序启动时,它会检查我们的"更新服务"并匹配元数据。
如果应用程序未更新,我们将启动一个单独的进程来更新 XML 并从我们的更新服务中关闭字节数组中的 DLL,该服务将 XML 和更新的 DLL 复制到相应的文件夹中。
这在当时对我们有用。部分原因是客户端可能会升级功能,我们可能需要它来下载其他 DLL。
但是,该应用程序的第一次安装是通过安装程序(exe(进行的。
挑战在于我们必须编写自定义内容以及补丁/程序集的正确管理或版本。但它足以被考虑并满足产品经理
ClickOnce 似乎是您的不错选择。
http://msdn.microsoft.com/en-US/library/T71A733D(v=vs.80(.aspx
此致敬意
无法就地"替换"文件,除非您执行了卷影复制 (http://msdn.microsoft.com/en-us/library/ms404279.aspx( 如果您不使用 ClickOnce,则必须有一些方法来"检查"应用程序中是否有更新。 我想WCF对此是矫枉过正的;您可以简单地使用已知 URL 来获取可以与应用程序中的版本号进行比较的"版本号",以及一个已知的 URL 来获取"最新"版本...... 大多数应用程序只是下载 MSI 并要求用户执行它。