Problem bei Updater für Launcher

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    Problem bei Updater für Launcher

    Hallo zusammen,

    das hier ist mein erster Post in dieser Community, also bitte nicht gleich verklagen ^^.

    Ich hoffe ich bin im richtigen Forum sonst bitte verschieben.

    Ich habe ein kleines Problem. Ich bin seid mehreren Tagen dabei einen Launcher zu erstellen und es klappt auch alles wunderbar, nur mein Updater will nicht so ganz wie ich es will.
    Ich habe als Main Programm meinen Launcher der einen Versions Check vornimmt und sobald ich die "version.ini" von 1.0.0.3 auf 1.0.0.4 vergrößere, soll das Main Programm ein zweites Programm Downloaden "Updater Programm" und ihn öffnen.
    Sobald der Updater offen ist soll er das Main Programm im Prozess Killen, dann löschen und die neue Version downloaden.
    Das ganze klappt auch wunderbar, sobald es bis dorthin durchgelaufen ist kommt eine Fehlermeldung "System.IO.IOException: Der Prozess kann nicht auf die Datei "F:\VisualStudioProjekte\Launcher Updater\bin\Debug\GSLauncher.exe" zugreifen, da sie von einem anderen Prozess verwendet wird."
    Ich habe nach dem Prozess gesucht und es ist definitiv keiner offen, der mit einen der Programmen zutun hat. Mein Latein ist da ein wenig am ende, vielleicht habt ihr eine Idee/Lösung ich Poste mal alles was ich habe.
    Ich wäre euch für Idee Idee/Tipp dankbar.

    Komplette Fehlermeldung:

    Quellcode

    1. Informationen über das Aufrufen von JIT-Debuggen
    2. anstelle dieses Dialogfelds finden Sie am Ende dieser Meldung.
    3. ************** Ausnahmetext **************
    4. System.IO.IOException: Der Prozess kann nicht auf die Datei "F:\VisualStudioProjekte\Launcher Updater\bin\Debug\GSLauncher.exe" zugreifen, da sie von einem anderen Prozess verwendet wird.
    5. bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
    6. bei System.IO.File.InternalDelete(String path, Boolean checkHost)
    7. bei System.IO.File.Delete(String path)
    8. bei Launcher_Updater.Form1.getUpdate() in F:\VisualStudioProjekte\Launcher Updater\Form1.vb:Zeile 35.
    9. bei Launcher_Updater.Form1.Form1_Load(Object sender, EventArgs e) in F:\VisualStudioProjekte\Launcher Updater\Form1.vb:Zeile 23.
    10. bei System.EventHandler.Invoke(Object sender, EventArgs e)
    11. bei System.Windows.Forms.Form.OnLoad(EventArgs e)
    12. bei System.Windows.Forms.Form.OnCreateControl()
    13. bei System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
    14. bei System.Windows.Forms.Control.CreateControl()
    15. bei System.Windows.Forms.Control.WmShowWindow(Message& m)
    16. bei System.Windows.Forms.Control.WndProc(Message& m)
    17. bei System.Windows.Forms.ScrollableControl.WndProc(Message& m)
    18. bei System.Windows.Forms.Form.WmShowWindow(Message& m)
    19. bei System.Windows.Forms.Form.WndProc(Message& m)
    20. bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    21. bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    22. bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
    23. ************** Geladene Assemblys **************
    24. mscorlib
    25. Assembly-Version: 4.0.0.0.
    26. Win32-Version: 4.8.4018.0 built by: NET48REL1LAST_C.
    27. CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll.
    28. ----------------------------------------
    29. GSLauncherUpdater
    30. Assembly-Version: 1.0.0.0.
    31. Win32-Version: 1.0.0.0.
    32. CodeBase: file:///F:/VisualStudioProjekte/Launcher Updater/bin/Debug/GSLauncherUpdater.exe.
    33. ----------------------------------------
    34. Microsoft.VisualBasic
    35. Assembly-Version: 10.0.0.0.
    36. Win32-Version: 14.8.3752.0 built by: NET48REL1.
    37. CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll.
    38. ----------------------------------------
    39. System
    40. Assembly-Version: 4.0.0.0.
    41. Win32-Version: 4.8.4001.0 built by: NET48REL1LAST_C.
    42. CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll.
    43. ----------------------------------------
    44. System.Core
    45. Assembly-Version: 4.0.0.0.
    46. Win32-Version: 4.8.4018.0 built by: NET48REL1LAST_C.
    47. CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll.
    48. ----------------------------------------
    49. System.Windows.Forms
    50. Assembly-Version: 4.0.0.0.
    51. Win32-Version: 4.8.4001.0 built by: NET48REL1LAST_C.
    52. CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll.
    53. ----------------------------------------
    54. System.Drawing
    55. Assembly-Version: 4.0.0.0.
    56. Win32-Version: 4.8.3752.0 built by: NET48REL1.
    57. CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll.
    58. ----------------------------------------
    59. System.Configuration
    60. Assembly-Version: 4.0.0.0.
    61. Win32-Version: 4.8.3752.0 built by: NET48REL1.
    62. CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll.
    63. ----------------------------------------
    64. System.Xml
    65. Assembly-Version: 4.0.0.0.
    66. Win32-Version: 4.8.3752.0 built by: NET48REL1.
    67. CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll.
    68. ----------------------------------------
    69. System.Runtime.Remoting
    70. Assembly-Version: 4.0.0.0.
    71. Win32-Version: 4.8.3752.0 built by: NET48REL1.
    72. CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Remoting/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll.
    73. ----------------------------------------
    74. mscorlib.resources
    75. Assembly-Version: 4.0.0.0.
    76. Win32-Version: 4.8.3752.0 built by: NET48REL1.
    77. CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_de_b77a5c561934e089/mscorlib.resources.dll.
    78. ----------------------------------------
    79. System.Windows.Forms.resources
    80. Assembly-Version: 4.0.0.0.
    81. Win32-Version: 4.8.3752.0 built by: NET48REL1.
    82. CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll.
    83. ----------------------------------------
    84. ************** JIT-Debuggen **************
    85. Um das JIT-Debuggen (Just-In-Time) zu aktivieren, muss in der
    86. Konfigurationsdatei der Anwendung oder des Computers
    87. (machine.config) der jitDebugging-Wert im Abschnitt system.windows.forms festgelegt werden.
    88. Die Anwendung muss mit aktiviertem Debuggen kompiliert werden.
    89. Zum Beispiel:
    90. <configuration>
    91. <system.windows.forms jitDebugging="true" />
    92. </configuration>
    93. Wenn das JIT-Debuggen aktiviert ist, werden alle nicht behandelten
    94. Ausnahmen an den JIT-Debugger gesendet, der auf dem
    95. Computer registriert ist, und nicht in diesem Dialogfeld behandelt.


    Main Programm Update Check:

    VB.NET-Quellcode

    1. Public Class UpdateCheck
    2. 'Check Updates
    3. Dim dirPath As String = My.Application.Info.DirectoryPath
    4. Dim tool As String = dirPath + "\GSLauncherUpdater.exe"
    5. Dim wClient As New System.Net.WebClient
    6. Private Sub UpdateCheck_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    7. If System.IO.File.Exists(tool) Then
    8. System.IO.File.Delete(tool)
    9. End If
    10. checkUpdates()
    11. End Sub
    12. Public Sub checkUpdates()
    13. Dim request As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create("https://LINKPFAD/version.ini")
    14. Dim response As System.Net.HttpWebResponse = request.GetResponse()
    15. Dim sr As System.IO.StreamReader = New System.IO.StreamReader(response.GetResponseStream())
    16. Dim newestversion As String = sr.ReadToEnd()
    17. Dim currentversion As String = Application.ProductVersion
    18. If newestversion.Contains(currentversion) Then
    19. Form1.Show()
    20. TimerOK.Start()
    21. Else
    22. wClient.DownloadFileAsync(New Uri("https://LINKPFAD/GSLauncherUpdater.exe"), dirPath + "\GSLauncherUpdater.exe")
    23. TimerUpdater.Start()
    24. End If
    25. End Sub
    26. Private Sub TimerUpdater_Tick(sender As Object, e As EventArgs) Handles TimerUpdater.Tick
    27. Process.Start(dirPath + "\GSLauncherUpdater.exe")
    28. Application.Exit()
    29. End Sub
    30. Private Sub TimerOK_Tick(sender As Object, e As EventArgs) Handles TimerOK.Tick
    31. Me.Hide()
    32. End Sub
    33. End Class




    Updater Programm:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim directoryPath As String = My.Application.Info.DirectoryPath
    3. Dim wCLient As New System.Net.WebClient
    4. Dim tool As String = directoryPath + "\GSLauncher.exe" 'Launcher Pfad -> tool
    5. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    6. For Each proc As Process In Process.GetProcesses
    7. If proc.ProcessName = "GSLauncher" Then
    8. proc.Kill()
    9. getUpdate()
    10. Else
    11. getUpdate()
    12. End If
    13. Next
    14. End Sub
    15. Public Sub getUpdate()
    16. If System.IO.File.Exists(tool) Then
    17. System.IO.File.Delete(tool)
    18. wCLient.DownloadFileAsync(New Uri("https://LINKPFAD/GSLauncher.exe"), directoryPath + "\GSLauncher.exe")
    19. TimerLauncher.Start()
    20. Else
    21. System.IO.File.Delete(tool)
    22. wCLient.DownloadFileAsync(New Uri("https://LINKPFAD/GSLauncher.exe"), directoryPath + "\GSLauncher.exe")
    23. TimerLauncher.Start()
    24. End If
    25. End Sub
    26. Private Sub TimerLauncher_Tick(sender As Object, e As EventArgs) Handles TimerLauncher.Tick
    27. Process.Start(directoryPath + "\GSLauncher.exe")
    28. Application.Exit()
    29. End Sub
    30. End Class



    Ich habe zwar gesehen in welcher Zeile er ein Problem hat, ich habe keine Idee wie ich das lösen könnte.
    PLS HELP ?(

    LG Knox

    *Topic verschoben*

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „EaranMaleasi“ ()

    Knox schrieb:

    Ich hoffe ich bin im richtigen Forum sonst bitte verschieben.

    VBScript <> VB.NET => [Allgemein] VB.NET, VB6, VBA, VBS — Mit welcher Sprache programmiere ich eigentlich?
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    In welchem Codeblock aus Post#1 kommt denn der Fehler? »Main Programm Update Check« oder »Updater Programm«?
    Dass die beiden Teile des If-Statements in der Prozedur getUpdate das gleiche machen, weißt Du?
    Wozu braucht es Timer?
    Codeblock1, Z#31: Form1.Show, und das aus einer Subclass heraus. Aua.
    Dialoge richtig instanziieren
    Warum »Form1.Show« und Co. einem irgendwann ins Bein schießen
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.