Ich habe eine DLL-Bibliothek, die ich gebaut habe, um die Menge der Zwischenkopie Code von Projekt zu Projekt kopiert zu reduzieren. In der DLL läuft ein Timer, um über RPC die Verbindung zu unseren Maschinen aufrecht zu erhalten. Wenn ich mein Projekt debuggen und die RPC-Verbindung brechen, wirft mein Code ein disconnect-Ereignis aus der dll-Bibliothek und mein Hauptformular fängt das Ereignis ab und behandelt es entsprechend.unbehandelte Ausnahme von dll - zeigt nur in Release-Build
Jetzt, für die Freigabe bauen. Wenn ich die RPC-Verbindung aufbringe, wird eine unbehandelte Ausnahme aus der Bibliothek geworfen, die anscheinend nirgendwo anders abgefangen wird. Der seltsame Teil ist, dass der Code, der die Ausnahme auslöst, im Timer ist und die Aufrufe alle in try/catch-Blöcke eingeschlossen sind und der catch-Block die Ausnahme verschluckt und andere Aufräumarbeiten durchführt.
Ich bekomme nicht, wie im Debug-Modus alles in Ordnung ist, aber in der Veröffentlichung ist es nicht. Dieser Teil ergibt für mich keinen Sinn. Ich habe versucht, das Ausnahmeobjekt zu betrachten und eine behandelte Eigenschaft darauf zu setzen, aber es ist nicht verfügbar. Ist das normales Verhalten, was ich sehe?
Ich habe erst vor kurzem begonnen, zahlreiche Bibliotheken in meinen Projekten zu verwenden, um meine Lösungen besser getrimmt und einfacher zu verfolgen. Hoffentlich ist das kein Problem mit Bibliotheken, die ich nicht berücksichtigt habe.
Sie müssen das Problem eingrenzen. Fügen Sie einige Protokollfunktionen hinzu, um herauszufinden, woher die Ausnahme stammt. – squelos