Mein UserControl greift auf eine DLL zu. Im Debug-Modus ohne Probleme.
Nur bekomme ich eine Exeption im Designer weil er natürlich die DLL und die Datenbank nicht findet.
Deswegen würd ich gern sowas implementieren:
if(!designmodus)
{
Connection.Open();
Command.ExecuteNonQuery();
Connection.Close();
}
kann mir da jemand einen tipp geben?
Ingo
Software für Selbstständige
(ob das Update von Firebird 2.0 auf Firebird 2.1 mich an den Rand des Wahnsinns bringt?}
Ups, da war ich wohl sehr nah an der Wahrheit dran 🙂
Das ist die Antwort:
if (!DesignMode)
{
Connection.Open();
Command.ExecuteNonQuery();
Connection.Close();
}
Software für Selbstständige
(ob das Update von Firebird 2.0 auf Firebird 2.1 mich an den Rand des Wahnsinns bringt?}
Hallo Ingo,
du hast doch schon fast richtig geraten... Innerhalb eines Controls besteht folgende Möglichkeit:
this.DesignMode
Das klappt aber z.B. im Konstruktor (des Controls) noch nicht; hierfür (oder wenn du nicht in einem Control bist) klappt auch folgende (dirty) Überprüfung:
Application.StartupPath.EndsWith(@"\Common7\IDE")
Gruß
dN!3L
Edit: So spät und doch noch Konflikte beim Antworten auf den Beitrag... 😁
eine dirty Lösung braucht's hier nicht, dafür gibt's System.ComponentModel.LicenseManager.UsageMode
kann mir da jemand einen tipp geben?
natürlich kannst du nun die vorschläge hier umsetzen oder aber du kannst es richtig machen.
tipp: änder deine architektur. mit der jetzigen wirst du auf dauer nciht glücklich.
Anmerkung:
Das Property DesignMode ist in der 3. Vererbungtiefe immer false - leider.
Hier mal noch eine Querverlinkung zu ein paar weiteren Gedanken zu DesignMode, Startuppath-Hack und LicenseManager.UsageMode:
Ansicht-Designer soll Code nicht ausführen