修改主应用程序exe文件时,我的updater应用程序出现问题。
每当updater被自己调用时它工作正常,但如果主应用程序调用它会抱怨它仍然打开。
关闭代码时主代码中的代码,如果有更新,则调用更新程序。
Private Sub btn_Force_Click(sender As Object, e As EventArgs) Handles btn_Force.Click
If MsgBox("Reverting to an old update risks the corruption of current data, this is not recommended unless instructed. Do you wish to proceed?", vbExclamation + vbYesNoCancel, "Warning") = MsgBoxResult.Yes Then
Shell("C:\Users\...\AppData\Roaming\...\Updater.exe")
Application.Exit()
End If
End Sub
由于安装文件,updater会替换整个文件夹。
所以订单是......
重命名文件
下载zip
解压缩文件
删除旧版并将旧版重命名为
不幸的是,当它尝试使用“无法重命名文件,因为它正被另一个进程使用”的错误重命名该文件时崩溃了。
这是更新程序中的代码
Public Function Rename(ToReplace As String, BeReplaced As String) As Boolean
Try
My.Computer.FileSystem.RenameDirectory(ToReplace, BeReplaced)
Return True
Catch ex As Exception
MsgBox(ex.ToString)
Return False
End Try
我见过其他示例,其中主应用程序调用更新程序,但我无法让它工作。
欢迎所有建议。
答案 0 :(得分:0)
加载更新程序时运行此命令。
Dim processes As Process() = Process.GetProcessesByName("your app.exe")
For Each p As Process In processes
p.Kill()
p.WaitForExit()