Usted puede tener archivo de configuración independiente, pero tendrá que leerlo "manual", elConfigurationManager.AppSettings["key"]
leerá únicamente la configuración del conjunto de marcha.
Suponiendo que está utilizando Visual Studio como su IDE, puede hacer clic con el botón derecho en el proyecto deseado → Agregar → Nuevo elemento → Archivo de configuración de la aplicación
Esto se agregará App.config
a la carpeta del proyecto, ponga su configuración allí en la <appSettings>
sección. En caso de que no esté utilizando Visual Studio y agregue el archivo manualmente, asegúrese de asignarle el nombre DllName.dll.config ; de lo contrario, el código siguiente no funcionará correctamente.
Ahora para leer de este archivo tenemos dicha función:
string GetAppSetting(Configuration config, string key)
{
KeyValueConfigurationElement element = config.AppSettings.Settings[key];
if (element != null)
{
string value = element.Value;
if (!string.IsNullOrEmpty(value))
return value;
}
return string.Empty;
}
Y para usarlo:
Configuration config = null;
string exeConfigPath = this.GetType().Assembly.Location;
try
{
config = ConfigurationManager.OpenExeConfiguration(exeConfigPath);
}
catch (Exception ex)
{
//handle errror here.. means DLL has no sattelite configuration file.
}
if (config != null)
{
string myValue = GetAppSetting(config, "myKey");
...
}
También deberá agregar una referencia al espacio de nombres System.Configuration para tener disponible la clase ConfigurationManager.
Al construir el proyecto, además de la DLL tendrás DllName.dll.config
archivo, ese es el archivo que debe publicar con la propia DLL.
Lo anterior es un código de muestra básico, para aquellos interesados en un ejemplo a escala completa, consulte esta otra respuesta .
string exeConfigPath = this.GetType().Assembly.Location;
a algo como:string exeConfigPath = @"C:\MyFolder\DllFolder\ExeName.exe";