我有一个程序写在VB.Net
和这个程序应该自动更新。我已经找到了如何下载新文件并将其解压缩,问题是我无法覆盖文件,只要它在执行中。这是如何正常完成的?我想在一个单独的exe文件上的“更新”,但会有同样的问题,我不能更新更新时,我做了一些更改...VB.Net程序应该自动更新
回答
只需关闭旧程序。
保留单独的更新程序,然后当您想更新旧程序时,请更新程序关闭旧程序,然后下载新版本的应用程序。例如,
更新程序,
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
Do While True
Dim client As New Net.WebClient
Dim newVersion As String = client.DownloadString("http://www.myWebsite.com/updates/latestVersion.txt")
If newVersion <> IO.File.ReadAllText("Your programs file location") Then
For Each p As Process In Process.GetProcesses
If p.ProcessName = "your program's process name" Then 'If you don't know what your program's process name is, simply run your program, run windows task manager, select 'processes' tab, scroll down untill you find your programs name.
p.Kill()
End If
Next
IO.File.Delete("old program file location")
client.DownloadFile("http://www.myWebsite.com/updates/12.05.2013.exe", "where ever you want to download your new program to (file location)")
client.Dispose()
End If
Threading.Thread.Sleep(300000) 'freeze thread for 5 mins...
Loop
End Sub
为什么不只是创建一个ClickOnce部署, ?
简单的解决方案,只是 划分的exe文件源代码分成多个DLL文件(如在模块的方面分),并具有主要的exe执行像
子MDImainEXE_load()
DLL.function的dll代码这样
末次
,您可以使用更新的exe 同样的方法与配置和DLL发送新的主EXE,配置文件将包含DLL的名称更新,如果更新EXE必须更新然后命名该DLL作为参数使用,因为更新exe文件不会包含代码只是使用来自DLL文件名称的函数m配置文件参数。
子updateEXE_load()
DLL.function像
末次
如果混淆然后问什么困惑。
老实说,所有困惑我..(漂亮的绿色在这里)应用程序是由一个单一的EXE文件组成..没有更多 – sharkyenergy
你知道Visual Studio有内置的这个功能,对不对? –
什么困惑你,你有多少或计划实施它,以便我们可以得到你的想法实施 – Vin
老问题,但我做的是,当我为我的主程序中,我复制重命名当前的更新,然后召唤出像重命名的更新所以:
(注意,代码已经简化了解释和说明)
FileCopy("MyUpdater.exe", "~MyUpdater.exe") ' rename the updater
Shell("~MyUpdater.exe") ' start the updater
END ' close the current program
然后当你更新它的工作,它会更新MyUpdater.exe以及对一切否则。
- 1. 自动更新vb.net中的应用程序
- 2. Web应用程序是否应该自动更新?
- 3. Android应用程序更新自动
- 4. 自动更新黑莓应用程序
- 5. Android应用程序的自动更新
- 6. BlackBerry应用程序自动更新
- 7. 自动更新Android应用程序
- 8. 自动更新应用程序
- 9. 自动更新桌面应用程序
- 10. iPhone应用程序的自动更新
- 11. 如何自动更新应用程序
- 12. NodeJS应用程序的自动更新
- 13. 自动更新WPF应用程序
- 14. iOS自动更新应用程序
- 15. 自动更新Windows应用程序
- 16. 自动更新web应用程序
- 17. 自动更新Web应用程序
- 18. iPhone应用程序的自动更新
- 19. 自动更新tomcat应用程序
- 20. IOS应用程序自动更新
- 21. 自动更新为Android应用程序
- 22. Windows应用程序的自动更新
- 23. VB.net自动重新启动应用程序
- 24. 如何自动更新应用程序iOS应用程序
- 25. 无应用程序商店自动更新iPad应用程序
- 26. C++自动更新程序
- 27. vb.net - 保持程序更新?
- 28. 自动更新/不可更新订阅mac应用程序
- 29. 自动更新后重新启动我的应用程序?
- 30. 市场更新后自动重新启动应用程序
谢谢!只有2个小问题:我如何更新更新程序? :)为什么你冻结5分钟? – sharkyenergy
欢迎您,1)获取旧的更新程序,下载新的更新程序,一旦下载了新的更新程序运行新的更新程序,获取新的更新程序以关闭旧的更新程序(如果它正在运行)并删除它,2)如果您仔细看,你会发现程序运行在一个无限循环中,所以5分钟冻结基本上会阻止程序每隔几毫秒检查一次新的更新,你可以删除循环,以便程序只检查一次执行,或者改变程序冻结的时间。 – Sam