Поделиться через


Введение в развертывание 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:

Функция ClickOnce Установщик Windows
Автоматическое обновление1 Да Да
Откат после установки2 Да Нет
Обновление через Интернет Да Нет
Не влияет на общие компоненты или другие приложения Да Нет
Предоставление разрешений безопасности Предоставление только необходимых для приложения разрешений (более безопасно) Предоставление полного доверия по умолчанию (менее безопасно)
Необходимость разрешений безопасности Зона Интернета или интрасети (полное доверие для установки с компакт-диска) Администратор
Подписание манифестов приложения и развертывания Да Нет
Пользовательский интерфейс для установки Один запрос Многооконный мастер
Установка сборок по требованию Да Нет
Установка общих файлов Нет Да
Установка драйверов Нет Да (с пользовательскими действиями)
Установка глобального кэша сборок Нет Да
Установка для нескольких пользователей Нет Да
Добавление приложения в меню Пуск Да Да
Добавление приложения в группу «Автозагрузка» Нет Да
Добавление приложения в меню Избранное Нет Да
Регистрация типов файлов Нет Да
Доступ к реестру во время установки3 Ограниченный Да
Обновление двоичных файлов Нет Да
Место установки приложения Кэш приложения ClickOnce Program Files (папка)

Как подробнее познакомиться с развертыванием ClickOnce?

Дополнительные сведения о развертывании ClickOnce см. в библиотеке ClickOnce на веб-узле windowsforms.net.