Введение в развертывание ClickOnce
Что такое развертывание ClickOnce?
ClickOnce – это технология развертывания, позволяющая создавать приложения Windows с возможностью самообновления, которые могут устанавливаться и запускаться с минимальным вмешательством пользователя. Развертывание ClickOnce разрешает три основные проблемы развертывания.
- Трудности обновления приложений. При развертывании установщика Microsoft Windows при каждом обновлении приложения пользователь должен переустановить его целиком; развертывание ClickOnce может обеспечить автоматическое обновление. Загружаются только измененные части приложения, затем полное обновленное приложение повторно устанавливается из новой параллельной папки.
- Влияние на компьютер пользователя. При развертывании установщика Microsoft Windows приложения часто зависят от общих компонентов, что может приводить к конфликтам в управлении версиями; при развертывании ClickOnce каждое приложение самодостаточно и не влияет на другие приложения.
- Разрешения безопасности. Для развертывания установщика Windows необходимы права администратора, и установку могут выполнять только пользователи с ограниченными правами; развертывание ClickOnce позволяет выполнять установку пользователям без прав администратора, предоставляются только необходимые для приложения разрешения безопасности доступа к коду.
Раньше такие проблемы могли вынуждать разработчиков создавать веб-приложения, а не приложения Windows, жертвуя широкими возможностями пользовательского интерфейса и скоростью ответа Windows Forms ради простоты установки. Приложения, развернутые с помощью ClickOnce, включают лучшее из обеих технологий.
Что такое приложение ClickOnce?
Говоря просто, приложение ClickOnce – это любое приложение Windows Forms или консольное приложение, опубликованное с помощью технологии ClickOnce. Существует три способа публикации приложения ClickOnce: с веб-страницы, общего сетевого ресурса или с носителя, например компакт-диска. Приложение ClickOnce может быть установлено на компьютере конечного пользователя и запускаться локально, даже если компьютер не подключен к сети; или же приложение может запускаться только в оперативном режиме без установки каких-либо компонентов на компьютере конечного пользователя. Дополнительные сведения см. в разделе Выбор стратегии развертывания ClickOnce.
Приложения ClickOnce могут обновляться самостоятельно; они могут проверять наличие доступных новых версий и автоматически заменять все обновленные файлы. Разработчик может указать поведение обновления; сетевой администратор также может управлять стратегиями обновления, например, устанавливая обязательность обновления. Конечный пользователь или администратор также может выполнить откат обновлений до предыдущей версии. Дополнительные сведения см. в разделе Выбор стратегии обновления ClickOnce.
Поскольку приложения ClickOnce по своей природе являются изолированными, установка или запуск приложения ClickOnce не могут нарушить работу существующих приложений. Приложения ClickOnce полностью самодостаточны; каждое приложение ClickOnce устанавливается и запускается из безопасного кэша определенного пользователя или приложения. По умолчанию приложения ClickOnce выполняются в зонах безопасности Интернет или интрасети. При необходимости приложение может запросить повышение прав. Дополнительные сведения см. в разделе Развертывание и безопасность ClickOnce.
Как работает развертывание ClickOnce
Базовая архитектура развертывания ClickOnce основана на двух файлах манифеста XML: манифест приложения и манифест развертывания.
В манифесте приложения описывается само приложение, включая сборки, зависимости и файлы, составляющие приложение, необходимые разрешения и место размещения доступных обновлений. Разработчик приложения создает манифест приложения с помощью мастера публикации Visual Studio 2005 или средства создания манифестов (Mage.exe) .NET Framework SDK. Дополнительные сведения см. в разделе Публикация приложения ClickOnce.
В манифесте развертывания описывается развертывание приложения, включая расположение манифеста приложения и версию приложения, которое должно запускаться клиентами. Администратор создает манифест развертывания с помощью средства создания манифестов (Mage.exe) .NET Framework SDK.
После создания манифеста развертывания он копируется в место развертывания. Это может быть веб-сервер, общий сетевой ресурс или носитель, например, компакт-диск. Манифест приложения и все файлы приложения также копируются в место развертывания, указанное в манифесте развертывания. Оно может совпадать с местом развертывания или отличаться от него. При использовании мастера публикации в Microsoft Visual Studio 2005 операции копирования выполняются автоматически.
После завершения развертывания в указанном месте конечные пользователи могут загрузить и установить приложение, щелкнув значок файла манифеста развертывания на веб-странице или в папке. В большинстве случаев для конечного пользователя выводится простое диалоговое окно с запросом на подтверждение установки, после чего автоматически выполняется установка и запуск приложения. При необходимости повышения прав для приложения перед продолжением установки также появляется запрос на предоставление разрешений.
Приложение добавляется в меню «Пуск» пользователя и в группу «Установка и удаление программ» на панели управления. В отличие от других технологий развертывания ничего не добавляется в папку Program Files, в реестр или на рабочий стол, а также для установки не требуются права администратора.
После того, как разработчик приложения создает обновленную версию приложения, он также создает новый манифест приложения и копирует файлы в место развертывания — обычно это папка одного уровня с исходной папкой развертывания приложения. Администратор обновляет манифест развертывания, чтобы он указывал на расположение новой версии приложения.
Помимо размещения развертывания в манифесте развертывания также содержится размещение обновления (веб-страница или общий сетевой ресурс), проверяемое приложением на наличие обновленных версий. В свойства публикации ClickOnce указывается время и частота проверки наличия обновлений приложением. Поведение обновления может указываться в манифесте развертывания или может устанавливаться пользователем с помощью интерфейса приложения при помощи API ClickOnce. Кроме того, в свойствах публикации может указываться обязательность обновлений или откат к предыдущей версии. Дополнительные сведения см. в разделе Выбор стратегии обновления ClickOnce.
Таблица сравнения ClickOnce и установщика Windows
В следующей таблице содержится сравнение функций развертывания ClickOnce и развертывания установщика Windows:
Автоматическое обновление1 |
Да |
Да |
Откат после установки2 |
Да |
Нет |
Обновление через Интернет |
Да |
Нет |
Не влияет на общие компоненты или другие приложения |
Да |
Нет |
Предоставление разрешений безопасности |
Предоставление только необходимых для приложения разрешений (более безопасно) |
Предоставление полного доверия по умолчанию (менее безопасно) |
Необходимость разрешений безопасности |
Зона Интернета или интрасети (полное доверие для установки с компакт-диска) |
Администратор |
Подписание манифестов приложения и развертывания |
Да |
Нет |
Пользовательский интерфейс для установки |
Один запрос |
Многооконный мастер |
Установка сборок по требованию |
Да |
Нет |
Установка общих файлов |
Нет |
Да |
Установка драйверов |
Нет |
Да (с пользовательскими действиями) |
Установка глобального кэша сборок |
Нет |
Да |
Установка для нескольких пользователей |
Нет |
Да |
Добавление приложения в меню Пуск |
Да |
Да |
Добавление приложения в группу «Автозагрузка» |
Нет |
Да |
Добавление приложения в меню Избранное |
Нет |
Да |
Регистрация типов файлов |
Нет |
Да |
Доступ к реестру во время установки3 |
Ограниченный |
Да |
Обновление двоичных файлов |
Нет |
Да |
Место установки приложения |
Кэш приложения ClickOnce |
Program Files (папка) |
Как подробнее познакомиться с развертыванием ClickOnce?
Дополнительные сведения о развертывании ClickOnce см. в библиотеке ClickOnce на веб-узле windowsforms.net. |