ClickOnce y configuración de la aplicación

La configuración de la aplicación de Windows Forms facilita la creación, el almacenamiento y el mantenimiento de las preferencias de usuarios y aplicaciones personalizadas en el cliente. En el siguiente documento se describe cómo funcionan los archivos de configuración de la aplicación en una aplicación ClickOnce y cómo ClickOnce migra la configuración cuando el usuario actualiza a la siguiente versión.

La información siguiente solo se aplica al proveedor de configuración de la aplicación predeterminado, la clase LocalFileSettingsProvider. Si proporciona un proveedor personalizado, ese proveedor determinará cómo almacena sus datos y cómo actualiza su configuración entre versiones. Para más información sobre los proveedores de configuración de la aplicación, consulte Arquitectura de configuración de la aplicación.

Archivos de configuración de la aplicación

La configuración de la aplicación consume dos archivos: <app>.exe.config y user.config, donde app es el nombre de la aplicación de Windows Forms. user.config se crea en el cliente la primera vez que la aplicación almacena la configuración con ámbito de usuario. Por el contrario, <app>.exe.config existirá antes de la implementación si define valores predeterminados para la configuración. Visual Studio incluirá este archivo automáticamente cuando use el comando Publicar. Si crea la aplicación ClickOnce con Mage.exe o MageUI.exe, debe asegurarse de que este archivo se incluya con los demás archivos de la aplicación al rellenar el manifiesto de aplicación.

Nota:

En ClickOnce para .NET Core 3.1 y .NET 5, o posterior, use dotnet-mage.exe en lugar de Mage.exe. Para obtener más información, consulte ClickOnce para .NET.

En una aplicación de Windows Forms no implementada mediante ClickOnce, se almacena un archivo <app>.exe.config de una aplicación en el directorio de esta, mientras que el archivo user.config se almacena en la carpeta Documents and Settings del usuario. En una aplicación ClickOnce, <app>.exe.config reside en el directorio de la aplicación dentro de la caché de aplicaciones ClickOnce y user.config reside en el directorio de datos ClickOnce de esa aplicación.

Independientemente de cómo implemente la aplicación, la configuración de la aplicación garantiza un acceso de lectura seguro a <app>.exe.config y un acceso de lectura y escritura seguro a user.config.

En una aplicación ClickOnce, el tamaño de los archivos de configuración usados por la configuración de la aplicación está restringido por el tamaño de la caché de ClickOnce. Para más información, consulte Información general sobre la memoria caché de ClickOnce.

.NET Core, y .NET 5 y versiones posteriores

Actualmente, es necesario firmar un ensamblado de .NET Core para su publicación con un archivo de clave de nombre seguro. En caso contrario, el método ApplicationSettingsBase.Upgrade no copia correctamente la configuración después de una nueva publicación de ClickOnce. Puede especificar el uso de un nombre seguro en las propiedades del proyecto de .NET Core, en la opción Crear > Asignación de nombre seguro.

Actualizaciones de versiones

Al igual que cada versión de una aplicación ClickOnce está aislada de las demás versiones, la configuración de una aplicación ClickOnce también está aislada de la configuración de otras versiones. Si el usuario actualiza a una versión posterior de la aplicación, la configuración de la aplicación compara la configuración de la versión más reciente (aquella con el número más alto) con la configuración proporcionada por la versión actualizada y combina la configuración en un nuevo conjunto de archivos de configuración.

En la tabla siguiente se describe cómo la configuración de la aplicación decide qué configuración copiar.

Tipo de cambio Acción de actualización
Configuración agregada a <app>.exe.config La nueva configuración se combina en el archivo <app>.exe.config de la versión actual
Configuración eliminada de <app>.exe.config La antigua configuración se elimina del archivo <app>.exe.config de la versión actual
Se ha cambiado el valor predeterminado de la configuración; la configuración local está todavía establecida en el valor predeterminado original especificado en user.config La configuración se combina en el archivo user.config de la versión actual con el nuevo valor predeterminado como valor.
Se ha cambiado el valor predeterminado de la configuración; la configuración está establecida en un valor no predeterminado de user.config La configuración se combina en el archivo user.config de la versión actual y se conserva el valor no predeterminado.

Si ha creado su propia clase contenedora de configuración de la aplicación y desea personalizar la lógica de actualización, puede invalidar el método Upgrade.

Configuración de ClickOnce y de la itinerancia

ClickOnce no funciona con una configuración de itinerancia, lo que permite que el archivo de configuración le siga en todas las máquinas de una red. Si necesita configuración de itinerancia, deberá implementar un proveedor de configuración de la aplicación que almacene la configuración a través de la red o desarrollar sus propias clases de configuración personalizadas para almacenar la configuración en un equipo remoto. Para más información sobre los proveedores de configuración, consulte Arquitectura de configuración de la aplicación.