Me está resultando muy difícil intentar acceder a una sección de configuración personalizada en mi archivo de configuración.Sección de configuración personalizada: No se pudo cargar el archivo o el ensamblaje
El archivo de configuración se lee desde un .dll que se carga como un complemento. Creé la Configuración y el código necesario usando el complemento Configuration Section Designer VS.
El espacio de nombre es 'ImportConfiguration'. La clase ConfigurationSection es 'ImportWorkflows'. El ensamblado es ImportEPDMAddin.
El xml:
<configSections>
<section name="importWorkflows" type="ImportConfiguration.ImportWorkflows, ImportEPDMAddin"/>
</configSections>
Cada vez que trato de leer en la configuración, se produce el error:
Se produjo un error al crear el controlador de sección de configuración para importWorkflows: No se pudo cargar el archivo o ensamblado ' ImportEPDMAddin.dll 'o una de sus dependencias. El sistema no puede encontrar el archivo especificado.
El dll no residirá en el mismo directorio que el ejecutable, ya que el software que carga el complemento coloca el dll y sus dependencias en su propio directorio. (No puedo controlar eso.)
He editado el código para la instancia singleton a lo siguiente:
string path = System.Reflection.Assembly.GetCallingAssembly().CodeBase;
path = path.Replace("file:///", "");
System.Configuration.Configuration configuration = System.Configuration.ConfigurationManager.OpenExeConfiguration(path);
return configuration.GetSection(ImportWorkflowsSectionName) as ImportConfiguration.ImportWorkflows;
También he intentado usar un NameValueFileSectionHandler simple también, pero me da una excepción diciendo que no puede cargar el archivo o el ensamblado 'Sistema'.
He leído numerosas publicaciones y artículos en el blog y parece que es posible leer un archivo de configuración para un dll, pero no puedo hacer que funcione. ¿Algunas ideas? Gracias.
¿Copiaste 'ImportEPDMAddin.dll.config' en la misma ubicación también? – ephemient
La configuración está segura, ya que he intentado usar un DictionarySectionHandler de otra clase y eso funciona. – ehcanadian