que tengo un archivo de configuración que se utiliza en varios proyectos, general.config
, parecer:ajustes de configuración Override
<?xml version="1.0" encoding="utf-8" ?>
<appSettings>
<add key="mykey1" value="myvalue1"/>
<add key="mykey2" value="myvalue2"/>
</appSettings>
En uno de los proyectos, que necesitan para anular una de las dos configuraciones. Por lo que el app.config
de este proyecto se parece a:
<?xml version="1.0"?>
<configuration>
<appSettings file="general.config">
<remove key="mykey1"/>
<add key="mykey1" value="anothervalue"/>
<add key="mykey3" value="myvalue3"/>
</appSettings>
</configuration>
Pero remove
no funciona aquí. ¿Cómo puedo anular mykey1
sin romper mykey2
? add
funciona en este caso. Puedo obtener myvalue3
desde ConfigurationManager
.
EDIT: general.config
se copia a la carpeta de salida automáticamente al compilar. No te preocupes por el problema de la ruta. Actualmente llegué:
ConfigurationManager.AppSettings["mykey1"]
//I got "myvalue1", but I want "anothervalue" here
//that is, this item is "overrided", just like virtual methods in C#
ConfigurationManager.AppSettings["mykey2"]
//this setting will not be modified, currently it works fine
ConfigurationManager.AppSettings["mykey3"] //good
¿se refiere a la transformación 'config'? –
Espero que la ruta especificada mediante 'archivo' sea relativa a la configuración; de lo contrario, se ignoraría – V4Vendetta
@ V4Vendetta: Estás en lo correcto. El general.config se copia a la carpeta de salida durante la compilación. –