我正在开发一个将推广到Windows计算机的应用程序。因为我的客户很少有计算机知识,所以安装和更新需要尽可能简单。我希望安装是唯一的手动步骤,更新应该自动完成。
安装将通过Installshield完成,或者更有可能通过其中一个开源克隆完成。安装程序将安装这些组件:
当其中一个组件发生变化时,我希望尽可能自动地更新它们。该应用程序将能够确定Web上是否有可用的更新并下载它们。
我有什么选择来实现这一目标? Java Webstart在我看来不是一个好的解决方案 - 例如它不能让我更新运行时。提供更新安装程序需要用户交互,甚至可能需要管理权限,因此无法以静默方式运行。
下面建议的链接不适合我的问题,因为我使用的守护进程需要在运行时更新,并且链接的帖子中的给定解决方案都不支持。
答案 0 :(得分:2)
我建议您重新考虑Java Web Start吗? 即使Wikipedia知道
重要的Web Start功能包括在用户未安装Java的情况下自动下载和安装JRE的功能,以及程序员指定给定程序执行所需的JRE版本的能力。
如果您仍然不想使用Web Start,那么这里是我在Windows机箱上使用的完全无声的解决方案。我们这里说的是 restart.bat :
cd \myApp
echo Killing myApp
pskill.exe myApp
TIMEOUT 5
del /q Release
copy \\mainCIcomputer\Build Release
TIMEOUT 5
cd Release
start myApp.exe
您所要做的就是启动单独的进程,然后从中运行restart.bat。您可以使用任何技术来确定何时重新加载您的应用程序(例如,http / ftp请求获取最新版本号,如果与现有版本号不同,则重新启动)。别忘了 - 这个过程应该分开,不要用你的主myApp杀死。它可以从另一个批次开始,或者,在我的情况下,我使用IronPython:
from System.Diagnostics import Process
p = Process()
p.StartInfo.UseShellExecute = False
p.StartInfo.RedirectStandardOutput = False
p.StartInfo.FileName = 'restart.bat'
p.Start()
p.WaitForExit()