Hallo,
ich weiß, die Frage nach der Ressourceneindung wurde schon oft gestellt, aber ich möchte unter Eigenschaften->Anwendung nichr das "Anwendungsframework aktivieren", da ich eine eigene Sub Main() benutze.
Leider steht mir damit der Punkt "Anwendungsereignisse anzeigen" und die "ApplicationEvents.vb" nicht zur Verfügung.
Mein bisheriger Code, der auch funktioniert:
Wie kann ich diesen Code nun beim Starten des Projektes mittels der Sub Main() ausführen?
Ich habe schon versucht ihn in eine eigene Klasse auszulagern, aber es kommt leider immer die Laufzeitfehlermeldung, daß die DLL nicht gefunden wird. Ich vermute, daher daß der Aufruf der "AssemblyResolve" gar nicht vom System genutzt wird.
Wer kann mir hier bitte weiterhelfen?
Danke!
P.S.: (Ja, ich möchte die DLL in die EXE integrieren, nein, ich möchte kein ILMerge nutzen)
ich weiß, die Frage nach der Ressourceneindung wurde schon oft gestellt, aber ich möchte unter Eigenschaften->Anwendung nichr das "Anwendungsframework aktivieren", da ich eine eigene Sub Main() benutze.
Leider steht mir damit der Punkt "Anwendungsereignisse anzeigen" und die "ApplicationEvents.vb" nicht zur Verfügung.
Mein bisheriger Code, der auch funktioniert:
VB.NET-Quellcode
- Imports System.Reflection
- Namespace My
- ' Für MyApplication sind folgende Ereignisse verfügbar:
- ' Startup: Wird beim Starten der Anwendung noch vor dem Erstellen des Startformulars ausgelöst.
- ' Shutdown: Wird nach dem Schließen aller Anwendungsformulare ausgelöst. Dieses Ereignis wird nicht ausgelöst, wenn die Anwendung mit einem Fehler beendet wird.
- ' UnhandledException: Wird bei einem Ausnahmefehler ausgelöst.
- ' StartupNextInstance: Wird beim Starten einer Einzelinstanzanwendung ausgelöst, wenn die Anwendung bereits aktiv ist.
- ' NetworkAvailabilityChanged: Wird beim Herstellen oder Trennen der Netzwerkverbindung ausgelöst.
- Partial Friend Class MyApplication
- Private WithEvents Domaene As AppDomain = AppDomain.CurrentDomain
- Private Function Domaene_AssemblyResolve(ByVal sender As Object, ByVal args As System.ResolveEventArgs) As System.Reflection.Assembly Handles Domaene.AssemblyResolve
- If args.Name.Contains("myDLL") Then
- Return System.Reflection.Assembly.Load(My.Resources.myDLL)
- Else
- Return Nothing
- End If
- End Function
- End Class
- End Namespace
Wie kann ich diesen Code nun beim Starten des Projektes mittels der Sub Main() ausführen?
Ich habe schon versucht ihn in eine eigene Klasse auszulagern, aber es kommt leider immer die Laufzeitfehlermeldung, daß die DLL nicht gefunden wird. Ich vermute, daher daß der Aufruf der "AssemblyResolve" gar nicht vom System genutzt wird.
Wer kann mir hier bitte weiterhelfen?
Danke!
P.S.: (Ja, ich möchte die DLL in die EXE integrieren, nein, ich möchte kein ILMerge nutzen)