Pet*_*nge 8 .net desktop-application
我对这个小组有一个普遍的问题.我即将为我的团队启动一个大项目,我怀疑,我们将作为一个桌面应用程序(我通常是我的应用程序前景中的网络人员,但我愿意改变.)
我最担心的是,当需要进行更改时,公司当前的桌面应用程序已经成为维护或更重要的分配方式的痛苦.所以我想开发一些东西,促使用户(我们的员工)在他们的计算机上过时更新软件.
那些之前已经做过这件事的人,我将不胜感激任何关于需要注意的陷阱的建议.此外,我会对任何人发现有助于解决类似要求的在线资源感兴趣.
谢谢.
编辑:我意识到我很糟糕!我忘了提一些最重要的细节.它将是一个使用.NET框架编写的Window应用程序,面向Win XP及更高版本.
Ztr*_*ger 13
如果你想自己实现它,它也很容易实现.我们的应用程序定期轮询Web服务以获取大致以下API的信息:
getVersion(Installation ID): returns release version to be installed and hash of all files
getFileList(Version ID): gets a list of files and file hashes for the release
getFile(File ID): gets one file
Run Code Online (Sandbox Code Playgroud)
优点:通过将逻辑编码到getVersion方法中,您可以将不同版本推送给不同的客户,并且还允许您首先将测试版发布给有限数量的客户.
检查所有下载文件的哈希值,确保您的应用程序正确下载文件.这也可用于修复损坏的应用程序文件.当发布的哈希与所有下载文件的哈希匹配时,就可以安装了.
要安装,请让主程序启动更新应用程序并退出.更新应替换所有已更改的应用程序文件.更新程序还可以运行与发布相关的任何SQL更改脚本或注册表更改.
在更新程序结束时,再次启动主应用程序并让主应用程序在需要时更新更新程序.它们互相更新,因此您可以将错误修正推送到更新程序和主应用程序.
我还建议在向客户推送新版本之前测试降级,以便在发现任何严重错误时自动切换到旧的稳定版本.
正如Daniel所说,因为你使用.NET和Windows ClickOnce应该可以正常工作.
另一种选择是使用Shadow Copying.基本上告诉您的程序集从不同的位置执行到它们安装的位置.这将允许您的应用程序更新自己的文件,即使加载了程序集.我之前没有用过这个,但已经看过几次了.
ClickOnce将是一个更简单的解决方案,除非你有一些不符合的需求,否则我会去做.ClickOnce允许您将应用程序发布到Web服务器或网络共享,并允许您的用户在新版本可用时自动更新其副本.它从内存中自动检查并在用户尝试启动应用程序时提示用户.
归档时间: |
|
查看次数: |
3807 次 |
最近记录: |