Ich habe eine Konfigurationsdatei erstellt, die mit einer WPF-Benutzersteuerungsbibliothek verknüpft ist. Beim Ausführen der Anwendung im Debugger oder auf eigene Faust die Konfiguration lädt einfach gut mit dem folgenden Code, der im Kontext der Bibliothek ausgeführt wird:
ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
fileMap.ExeConfigFilename = "MapControl.dll.config";
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
if (config != null)
{
_Instance = (MapControlConfiguration)config.GetSection("MapControlConfiguration");
}
Wenn ich jedoch versuche, das Steuerelement im XAML-Designer von Visual Studio 2010 anzuzeigen, wird die Konfigurationsdatei nicht geladen. Mithilfe von Process Monitor habe ich festgestellt, dass versucht wird, die Konfigurationsdatei am folgenden Speicherort zu laden: C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\MapControl.dll.config
. Das ist bedauerlich, da dies sicherlich nicht das Verzeichnis ist, in dem sich die Konfigurationsdatei befindet. ConfigurationManager.OpenMappedExeConfiguration
erwartet, dass die Konfigurationsdatei relativ zur ausführbaren Datei ist, aber im Kontext des XAML-Designers gibt es per se keine ausführbare Datei. Gibt es eine Möglichkeit, den Speicherort der Konfigurationsdatei anzugeben, so dass sie geladen wird, wenn das Steuerelement im XAML-Designer angezeigt wird?