Si no está usando ConfigurationManager
para administrar su aplicación y la configuración del usuario, debe ser. El kit de herramientas de configuración en .NET Framework está muy bien pensado, y las herramientas de Visual Studio que interoperan con él también lo son.
El comportamiento predeterminado de ConfigurationManager
pone tanto la configuración invariable (aplicación) como la modificable (usuario) en los lugares correctos: la configuración de la aplicación va en la carpeta de la aplicación y la configuración del usuario va en System.Environment.SpecialFolder.LocalApplicationData
. Funciona correctamente en todas las versiones de Windows compatibles con .NET.
En cuanto a los archivos de registro, System.Environment.SpecialFolder.LocalApplicationData
es generalmente el lugar que desea colocar, ya que se garantiza que el usuario puede escribir.
Hay casos en los que no lo haría, por ejemplo, si desea escribir archivos en un recurso compartido de red para que pueda acceder a ellos de forma remota. Existe una amplia gama de formas de implementarlo, pero la mayoría de ellos comienzan con la creación de una configuración de aplicación que contiene la ruta a la carpeta compartida. Todos ellos implican administración.
Tengo un par de quejas sobre ConfigurationManager
y las herramientas VS: es necesario que haya una mejor documentación de alto nivel que la que hay, y una mejor documentación de la clase Settings
generada por VS. El mecanismo por el cual el archivo app.config
se convierte en el archivo de configuración de la aplicación en el directorio de compilación de destino es opaco (y el origen de una de las preguntas más frecuentes: "¿qué pasó con mi cadena de conexión?"). Y si hay una forma de crear configuraciones que no tienen valores predeterminados, no las he encontrado.
Ver también [esta pregunta] (http://stackoverflow.com/questions/1556082/as-a-developer-how-should-i-use-the-special-folders-in-vista-and-windows- 7) –