joehuaba
Goto Top

Windows Forms: DLL-Fehlermeldung

Hallo Zusammen,

ich habe in VB.NET ein Tool entwickelt, welches auch schon ganz ordentlich läuft.
Ich verwende außerdem DLL Dateien in meinem Projekt.

Wenn ich die .exe Datei in einen anderen Ordner verschiebe, fehlen die DLL-Dateien und beim Start erscheint eine Fehlermeldung:

dll-fehler

Das ist auch verständlich und ok soweit.

Nun zu meiner Frage:

Ist es möglich diese Fehlermeldung zu unterdrücken, oder abzufangen mit einer "einfachen" MessageBox?
Normalerweise wird die exe ja nicht verschoben oder einzeln ausgeführt, aber wenn doch, wäre eine "schöne" Fehlermeldung erstrebenswert.
Leider bin ich nicht tief genug in der Materie und Google versteht wahrscheinlich nicht, was ich wissen will face-big-smile

Danke im Voraus und Gruß
joehuaba

Content-Key: 666893

Url: https://administrator.de/contentid/666893

Printed on: July 19, 2024 at 08:07 o'clock

Member: wiesi200
wiesi200 May 19, 2021 at 16:53:31 (UTC)
Goto Top
Hallo,

Try and Catch ist was du brauchst.

Wenn du jetzt dein ganzes Projekt so einfasst ist das aber eher schlechter Programmierstiel.
Member: wiesi200
wiesi200 May 19, 2021 at 17:21:13 (UTC)
Goto Top
Übrigens, kleiner Tipp.
VB.NET ist eine tote Sprache.
https://www.dotnetpro.de/core/net/zukunft-visual-basic-net-2514493.html

War zwar einfach aber Sprachliche zum lernen eher eine Sackgasse.
Member: mbehrens
Solution mbehrens May 19, 2021 at 18:36:22 (UTC)
Goto Top
Zitat von @joehuaba:

ich habe in VB.NET ein Tool entwickelt, welches auch schon ganz ordentlich läuft.

Schon mal Mercury angeschaut, wenn es auch in Zukunft noch VB sein soll?

Ich verwende außerdem DLL Dateien in meinem Projekt.

Wenn ich die .exe Datei in einen anderen Ordner verschiebe, fehlen die DLL-Dateien und beim Start erscheint eine Fehlermeldung:

Ansätze könnten Embedded Resources oder die Verwendung der AppDomain Class sein.
Member: joehuaba
joehuaba May 20, 2021 at 06:00:02 (UTC)
Goto Top
Guten Morgen @wiesi200,

ja, try-catch verwendet man normalerweise.
Das Problem ist leider, dass der Fehler nicht nach einem Button_Click o.Ä. erscheint,
sondern beim Öffnen der exe. Er möchte die Ressourcen laden und findet die DLL nicht.
Mir ist leider nicht bewusst, wo und wie ich den Fehler abfangen kann.
Member: joehuaba
joehuaba May 20, 2021 at 12:07:22 (UTC)
Goto Top
Hallo @mbehrens,

Dein Tipp mit AppDomain war super!
Folgendermaßen habe ich es gelöst, um keine DLL-Fehlermeldung zum Start zu bekommen:

Private Sub MYExceptionHandler(ByVal sender As Object, ByVal e As UnhandledExceptionEventArgs)
        Dim EX As Exception = e.ExceptionObject
        'MessageBox.Show(EX.StackTrace)  
        writeLog("err", EX.Message.ToString)  
        btnInfoError.Visible = True
End Sub

Private Sub MYThreadHandler(ByVal sender As Object, ByVal e As Threading.ThreadExceptionEventArgs)
        'MessageBox.Show(e.Exception.StackTrace)  
        writeLog("err", e.Exception.ToString)  
        btnInfoError.Visible = True
End Sub


    'LOAD  
Private Sub MYSOFTWARE_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        'for regular unhandled stuff  
        Dim currentDomain As AppDomain = AppDomain.CurrentDomain
        AddHandler currentDomain.UnhandledException, AddressOf MYExceptionHandler

        'for threads in forms  
        AddHandler Application.ThreadException, AddressOf MYThreadHandler
End Sub