ClickOnce и параметры приложения

Параметры приложения для Windows Forms упрощают создание, хранение и обслуживание пользовательских настроек приложения и пользователей на клиенте. В следующем документе описывается, как файлы параметров приложения работают в приложении ClickOnce и как ClickOnce переносит параметры при обновлении пользователя до следующей версии.

Приведенные ниже сведения относятся только к поставщику параметров приложения по умолчанию, LocalFileSettingsProvider классу. Если вы предоставляете настраиваемый поставщик, этот поставщик определит способ хранения данных и способ обновления параметров между версиями. Дополнительные сведения о поставщиках параметров приложения см. в разделе "Архитектура параметров приложения".

Файлы параметров приложения

Параметры приложения используют два файла: <app.exe.config> и user.config, где приложение — имя приложения Windows Forms. user.config создается на клиенте при первом хранилище параметров пользовательского область. <app.exe.config>, напротив, будет существовать до развертывания, если вы определяете значения по умолчанию для параметров. Visual Studio будет включать этот файл автоматически при использовании команды публикации . При создании приложения ClickOnce с помощью Mage.exe или MageUI.exe необходимо убедиться, что этот файл включен в другие файлы приложения при заполнении манифеста приложения.

Примечание.

В ClickOnce для .NET Core 3.1 и .NET 5 или более поздней версии используйте dotnet-mage.exe вместо Mage.exe. Дополнительные сведения см. в разделе ClickOnce для .NET.

В приложении Windows Forms, не развернутом с помощью ClickOnce, файл app.exe.config> приложения< хранится в каталоге приложения, а файл user.config хранится в папке "Документы пользователя" и Параметры. В приложении <ClickOnce файл app.exe.config> находится в каталоге приложений внутри кэша приложений ClickOnce, а конфигурация user.config находится в каталоге данных ClickOnce для этого приложения.

Независимо от способа развертывания приложения параметры приложения обеспечивают безопасный доступ на чтение к app.exe.config> и безопасный доступ на чтение и запись к user.config.<

В приложении ClickOnce размер файлов конфигурации, используемых параметрами приложения, ограничивается размером кэша ClickOnce. Дополнительные сведения см. в обзоре кэша ClickOnce.

.NET Core и .NET 5 или более поздней версии

В настоящее время публикуемая сборка .NET Core должна быть подписана с помощью файла ключа строгого имени. Если это не так, ApplicationSettingsBase.Upgrade метод не копирует параметры правильно после новой публикации ClickOnce. Вы можете указать строгое имя в свойствах проекта .NET Core в разделе "Строгое именование сборки>".

Обновление версий

Так же, как и каждая версия приложения ClickOnce изолирована от всех остальных версий, параметры приложения для приложения ClickOnce также изолированы от параметров для других версий. Когда пользователь обновляется до более поздней версии приложения, параметры приложения сравнивают последние (самые нумерованные) версии с параметрами, предоставленными обновленной версией, и объединяет параметры в новый набор файлов параметров.

В следующей таблице описывается, как параметры приложения определяют, какие параметры следует копировать.

Тип изменения Действие обновления
Параметр, добавленный в <app.exe.config> Новый параметр объединяется в конфигурацию app.exe.config> текущей версии.<
Параметр удален из <app.exe.config> Старый параметр удаляется из конфигурации app.exe.config> текущей версии<.
Значение по умолчанию изменено; Локальный параметр по-прежнему установлен на исходное значение по умолчанию в user.config Параметр объединяется с текущей конфигурацией user.config текущей версии с новым значением по умолчанию.
Значение по умолчанию изменено; параметр, не используемый по умолчанию в user.config Параметр объединяется в конфигурацию user.config текущей версии с сохраненным значением, не используемым по умолчанию.

Если вы создали собственный класс оболочки параметров приложения и хотите настроить логику обновления, можно переопределить Upgrade метод.

Параметры ClickOnce и роуминга

ClickOnce не работает с перемещаемыми параметрами, что позволяет файлу параметров следовать за вами на компьютерах в сети. Если вам нужны перемещаемые параметры, необходимо либо реализовать поставщик параметров приложения, который хранит параметры по сети, либо разработать собственные классы параметров для хранения параметров на удаленном компьютере. Дополнительные сведения о поставщиках параметров см. в разделе "Архитектура параметров приложения".