Я создал файл конфигурации, связанный с библиотекой пользовательского управления WPF. При запуске приложения в отладчике или на своем собственном конфигурационные нагрузки просто отлично, используя следующий код, который запускается в контексте библиотеки:ConfigurationationManager.OpenMappedExeConfiguration не загружает файл конфигурации в XAML-дизайнере
ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
fileMap.ExeConfigFilename = "MapControl.dll.config";
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
if (config != null)
{
_Instance = (MapControlConfiguration)config.GetSection("MapControlConfiguration");
}
Однако, когда я пытаюсь просмотреть элемент управления в Visual Studio 2010 XAML-дизайнер, файл конфигурации не загружается. Используя Process Monitor, я решил, что он пытается загрузить файл конфигурации в следующем месте: C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\MapControl.dll.config
. Это печально, так как это, конечно, не каталог, содержащий файл конфигурации. ConfigurationManager.OpenMappedExeConfiguration
ожидает, что файл конфигурации будет относиться к исполняемому файлу, но в контексте конструктора XAML сам по себе не существует исполняемого файла. Есть ли способ указать местоположение конфигурационного файла, чтобы он загружался, когда элемент управления просматривается в дизайне XAML?