VS 2008 SP1
我创建了一个我在用户计算机上安装的应用程序。但是,我希望应用程序能够自我更新。但我不确定这是否真的会更新应用程序。
应用程序将从Web服务器下载所有文件,并替换安装程序所在目录中的文件。用户将重新启动应用程序。
我只是想确定,因为我无法用更新的文件替换已安装的文件。随着应用程序将运行。所以应用程序真的无法删除/替换自己。
所以,我以为我可以下载到另一个目录,如果程序安装在这个目录'program files / application / 1.0.0'那么我可以将文件下载到'program files / application / 1.0.1 ”。
但是,当程序重启时,怎么知道它必须从1.0.1目录执行?
我不能使用clickonce或更新程序块。
非常感谢任何建议,
答案 0 :(得分:3)
一个好的选择是创建一个独立的Updater应用程序。
更新程序将下载最新版本并终止/替换旧版本。
我认为这是最好的选择,因为您可以在主应用程序中执行更新程序(因此您可以说它是自我更新的),或者直接由用户使用快捷方式执行。
更新程序可以检查应用程序是否正在运行,并要求用户退出应用程序或自行终止它。
原谅我的英语......
祝你好运答案 1 :(得分:2)
如果您使用ClickOnce部署(项目属性,发布),则已经为您完成了所有这些工作。
答案 2 :(得分:1)
您可以使用一个小型加载程序包装应用程序,该程序将进行版本检查。如果它已过期,请下载较新的二进制文件并覆盖旧的二进制文件。如果您想维护所有可能最终版本的版本:
c:\program files\mycompany\myapp\loader (the newer version will point to the latest directory)
c:\program files\mycompany\myapp\v1.0
c:\program files\mycompany\myapp\v1.1
如果是在局域网上,您可能只能在启动时重新下载二进制文件的带宽。
答案 3 :(得分:1)
使用Windows Installer进行安装和更新。如果您对安装包进行签名,则用户可以在不需要任何管理员权限的情况下更新您的应用程序。
我创建了一个网站和一个应用程序,用于演示my website所需的功能。
答案 4 :(得分:1)
Wix Clickthrough可能符合您的需求:http://wix.sourceforge.net/clickthrough.html
答案 5 :(得分:1)
我会调查ClickOnce。它可以配置多种方式,在应用程序运行之前检查更新,每次运行时从服务器下载,或者在应用程序启动后检查更新。
我已经完成了ClickOnce部署和独立的更新应用程序,它们都运行良好。显然,您可以比自己创建的更新应用程序具有更大的灵活性,但是,ClickOnce也可以配置为安装必备软件,例如.NET Framework,Windows Installer等,以便运行应用程序。