Anwendung nach Initialisierung beenden

JK_net

Erfahrenes Mitglied
Hallo!

In meiner Anwendung überprüfe ich im folgenden Code-Abschnitt:

Code:
public frmMain() 
{
if (Assembly.LoadWithPartialName("test") == null)
{
	MessageBox.Show("Die Datei \"test.dll\" konnte nicht gefunden werden. Die Datei 
	muss im selben Verzeichnis wie das Hauptprogramm oder im Global Assembly Cache 
	liegen.", "Fehlende Komponente", MessageBoxButtons.OK, MessageBoxIcon.Error);
	this.missingComponent = true;
	Application.Exit();
}
 
if (this.missingComponent == false)
{
	InitializeComponent();
}
}

ob die dazugehörige DLL im Anwendungsverzeichnis oder GAC liegt.
Wenn nicht, möchte ich die Anwendung beenden.

Allerdings scheint er danach noch Code auszuführen, da ich eine IO.FileNotFound - Exception bekomme.

Kann mir jemand sagen, wo der Fehler liegt?

MfG
Jens
 
Hallo Norbert, hi JK_net!

Das ist jetzt keine Kritik :), aber wir hatten doch schonmal das Thema.
Währe es nicht besser die Abhängigkeiten noch vor Application.Run() zu prüfen bevor das Form überhaupt erst geladen wird?
Würde man zb Application.Exit() im Konstruktor des Forms aufrufen, bekommt man eine NullPointerException o.Ä. weil Application.Run() unbedingt abgearbeitet werden muss.

Code:
public static void Main() {
	if ( Assembly.LoadWithPartialName( "test" ) == null ){
		MessageBox.Show("Die Datei \"test.dll\" konnte nicht gefunden werden. Die Datei muss im selben Verzeichnis wie das Hauptprogramm oder im Global Assembly Cache liegen.",
		"Fehlende Komponente",
		MessageBoxButtons.OK, MessageBoxIcon.Error);
	}
	else{
		Application.DoEvents();
		Application.Run( MyForm );
	}
}
MfG, cosmo
 

Neue Beiträge

Zurück