Fehlercode

  • VB.NET

Es gibt 17 Antworten in diesem Thema. Der letzte Beitrag () ist von Firestorm.

    Fehlercode

    Hallo VB-Forum

    Meine kumpels bekommen immer diese Fehlermeldung,bei meinem Programm wenn sie updaten wollen.

    Spoiler anzeigen
    nformationen über das Aufrufen von JIT-Debuggen
    anstelle dieses Dialogfelds finden Sie am Ende dieser Meldung.

    ************** Ausnahmetext **************
    System.IO.FileNotFoundException: Die Datei wurde nicht gefunden.
    bei Microsoft.VisualBasic.Interaction.Shell(String PathName, AppWinStyle Style, Boolean Wait, Int32 Timeout)
    bei Blacknetwork_Launcher.Form5.Form5_Load(Object sender, EventArgs e)
    bei System.EventHandler.Invoke(Object sender, EventArgs e)
    bei System.Windows.Forms.Form.OnLoad(EventArgs e)
    bei System.Windows.Forms.Form.OnCreateControl()
    bei System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
    bei System.Windows.Forms.Control.CreateControl()
    bei System.Windows.Forms.Control.WmShowWindow(Message& m)
    bei System.Windows.Forms.Control.WndProc(Message& m)
    bei System.Windows.Forms.ScrollableControl.WndProc(Message& m)
    bei System.Windows.Forms.Form.WmShowWindow(Message& m)
    bei System.Windows.Forms.Form.WndProc(Message& m)
    bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
    Hallo Muqq,

    naja - sagt doch schon alles
    System.IO.FileNotFoundException: Die Datei wurde nicht gefunden.

    das Ganze wird wohl in
    bei Blacknetwork_Launcher.Form5.Form5_Load

    ausgelöst.

    Gruss

    mikeb69
    Der code

    Spoiler anzeigen
    Private Sub Form5_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim VersionChecker As New System.Net.WebClient
    Dim ServerVersion As String = VersionChecker.DownloadString("meinftp")
    Dim MeineVersion As String = Me.Label_v.Text

    If Not ServerVersion = MeineVersion Then
    MsgBox("neuev", MsgBoxStyle.Information)
    Shell(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\updater.exe")
    End


    End If



    So, erstmal nutzt man statt Shell() die Prozess-Klasse und ansonsten ists so richtig, jedoch scheint die Datei bei deinen Freunden dann eben nicht vorhanden zu sein, so wie die Fehlermeldung es auch sagt.

    Um so etwas entgegen zu wirken prüfst du einfach erstmal selbst auf existenz der Datei, bevor du sie ausführen willst

    VB.NET-Quellcode

    1. If File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\updater.exe") Then
    2. Else
    3. MessageBox.Show("Datei existiert nicht")
    4. End If
    Okay auf dem anderem PC kommt jetz das die datei nicht existiert, ich hab den updater jetz einzeln rübergeschickt,geht aber trotzdem nicht

    Also der Updater lässt sich öffnen ohne Probleme,

    Nur das Hauptprogramm geht immernoch nicht,selber fehler

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Muqq“ ()

    1. Hast Du nun die Prüfung, ob die Datei existiert, eingebaut, wie Dodo vorgeschlagen hat?
    2. Gebe Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\updater.exe" mal in z.B. einer MessageBox aus, um zu prüfen, ob der Pfad stimmt. Nicht dass da z.B. ein „\“ zu viel ist.
    3. Wenn der Pfad stimmt, kopiere ihn, und gebe ihn in die Eingabeaufforderung ein.
    Es gibt doch nur zwei Möglichkeiten:
    1. Die Datei liegt nicht in dem angegebenen Pfad.
    2. Der angegebene Pfad ist falsch.

    Es ist doch ganz einfach diese beiden Möglichkeiten zu prüfen (siehe mein letztens Posting). Zu beachten ist, dass die SpecialFolder je nach OS wo anders liegen können.
    der specialfolder ist in C:\Users\Username\AppData oder so
    gibt im explorer einfach %AppData% ein dann sollteste ihn bekommen.

    PS wenn du ned ma weist wo die update liegt, wie willst du dann überhaupt sowas auf die reihe bekommen?

    Warfley schrieb:

    der specialfolder ist in C:\Users\Username\AppData oder so


    Das gilt aber nur für Win7 (und vielleicht für Vista). Bei XP liegen die unter \Dokumente und Einstellungen\...

    Klar, SpecialFolders enthält Links zu den passenden Pfaden, je nach OS, aber wenn update.exe an eine andere Stelle gelegt wurde, dann wird sie auch nicht gefunden.

    Schade, dass der TE sich weigert die Hilfsvorschläge durchzuführen und uns mit ein paar Informationen zu versorgen. So bleibt es ein fröhliches Raten.

    Muqq schrieb:

    System.IO.FileNotFoundException: Die Datei wurde nicht gefunden.
    bei Microsoft.VisualBasic.Interaction.Shell(String PathName, AppWinStyle Style, Boolean Wait, Int32 Timeout)

    Muqq schrieb:

    Shell(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\updater.exe")

    Das erste Zitat ist aus deiner Fehlermeldung, das zweite aus deinem Programmcode. Hier liegt der Fehler.

    Normale Vorgehensweise: Shell durch eine Messagebox ersetzen, um diese Zeile zu überprüfen. Dann kannnst du nachschauen, ob die Datei wirklich dort ist.
    Bei mir sieht das dann so aus:(Win7,64bit)

    Quellcode

    1. C:\Users\Kurti\AppData\Roaming\updater.exe

    Ist dies der richtige Pfad, wo deine updater.exe ist :?:
    Tu es doch in den gleichen Ordner wie deine .exe und rufs dann über z.B.

    VB.NET-Quellcode

    1. My.Computer.FileSystem.CurrentDirectory

    auf.

    Mfg
    Firestorm