Обзор развертывания ClickOnce

Обновлен: Ноябрь 2007

Технология развертывания ClickOnce позволяет создавать самообновляющиеся приложения Windows, которые способны устанавливаться и работать при минимальном участии пользователя. Технология развертывания ClickOnce служит для преодоления трех основных проблем развертывания:

  • Трудности обновления приложений. В случае развертывания с помощью установщика Microsoft Windows каждый раз когда приложение обновляется, пользователь должен переустановить все приложение. Технология развертывания ClickOnce позволяет предоставлять обновления автоматически. Загружаются только те части приложения, которые изменились, а затем полное, обновленное приложение повторно устанавливается из новой расположенной рядом папки.

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

  • Разрешения безопасности. Развертывание с помощью установщика Windows должно выполняться с правами администратора и допускает только ограниченную пользовательскую установку. Развертывание по технологии ClickOnce предоставляет пользователям, не имеющим прав администратора, возможность установки, и позволяет наделять только теми правами системы безопасности доступа к коду, которые необходимы для приложения.

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

Что такое приложение ClickOnce?

Попросту говоря, приложение ClickOnce — это любое приложение Windows Presentation Foundation, Windows Forms или консоли, опубликованное с помощью технологии ClickOnce. Приложение ClickOnce можно опубликовать тремя разными способами: с веб-страницы, из общего сетевого файлового ресурса или с носителя, такого как компакт-диск. Приложение ClickOnce может быть установлено на компьютер конечного пользователя и может выполняться локально, даже когда компьютер находится в автономном режиме, или приложение может выполняться только в интерактивном режиме без постоянной установки каких-либо компонентов на компьютер конечного пользователя. Дополнительные сведения см. в разделе Выбор стратегии развертывания ClickOnce.

Приложения ClickOnce могут быть самообновляющимися; они могут проверять наличие новых версий по мере их доступности и автоматически заменять любые обновленные файлы. Разработчик может задать поведение обновления. Сетевой администратор также может управлять стратегиями обновления, например помечая обновление как обязательное. Конечный пользователь и администратор могут также откатывать обновления к более ранней версии. Дополнительные сведения см. в разделе Выбор стратегии обновления ClickOnce.

Так как приложения ClickOnce изолированы, установка и выполнение приложения ClickOnce не могут нарушить работу существующих приложений. Приложения ClickOnce самодостаточны; каждое приложение ClickOnce устанавливается и выполняется из безопасного кэша, выделенного для каждого пользователя, для каждого приложения. По умолчанию приложения ClickOnce выполняются в зонах безопасности Интернета или интрасети. При необходимости приложение может запросить повышенные уровни разрешений. Дополнительные сведения см. в разделе Развертывание и безопасность ClickOnce.

Как работает развертывание ClickOnce

Основная архитектура развертывания ClickOnce основана на двух XML-файлах манифестов: манифесте приложения и манифесте развертывания.

Манифест приложения описывает само приложение. Описание содержит сборки, зависимости и файлы, которые составляют приложение, требуемые разрешения и местоположение, где будут доступны обновления. Разработчик приложения создает манифест приложения с помощью мастера публикаций в Visual Studio 2008 или средства создания манифеста (Mage.exe) в SDK (пакет средств разработки программного обеспечения) для Windows. Дополнительные сведения см. в разделе Практическое руководство. Публикация приложения ClickOnce.

Манифест развертывания описывает порядок развертывания приложения. Описание содержит местоположение манифеста приложения и версию приложения, которая должна запускаться клиентами. Администратор разрабатывает манифест развертывания, используя средство (Mage.exe) создания манифеста в SDK для Windows.

142dbbz4.alert_note(ru-ru,VS.90).gifПримечание.

Мастер публикаций в Microsoft Visual Studio 2005 создает также манифест развертывания.

После того как манифест развертывания создан, он копируется в местоположение развертывания. Это может быть веб-сервер, общий сетевой файловый ресурс или носитель, такой как компакт-диск. Манифест приложения и все файлы приложения копируются также в местоположение развертывания, которое задается в манифесте развертывания. Это местоположение может совпадать с местоположением развертывания или оно может находиться в другом месте. При использовании Мастера публикаций в Microsoft Visual Studio 2005 операции копирования выполняются автоматически.

142dbbz4.alert_note(ru-ru,VS.90).gifПримечание.

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

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

Приложение добавляется в пользовательское меню Пуск и в группу Установка и удаление программ в Панели управления. В отличие от других технологий развертывания ничего не добавляется в папку Файлы программ, в реестр и на рабочий стол. К тому же, для установки не требуются права администратора

142dbbz4.alert_note(ru-ru,VS.90).gifПримечание.

Имеется также возможность запретить добавление приложения в меню Пуск и в группу Установка и удаление программ, в действительности заставляя приложение вести себя как какое-нибудь веб-приложение. Дополнительные сведения см. в разделе Выбор стратегии развертывания ClickOnce.

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

142dbbz4.alert_note(ru-ru,VS.90).gifПримечание.

Для выполнения этих шагов может использоваться Мастер публикаций в Microsoft Visual Studio 2005.

Помимо местоположения развертывания манифест развертывания содержит также местоположение обновления (веб-страницу или общий сетевой файл). Свойства пункта Публикация приложения ClickOnce используются, чтобы указать время и частоту проверки приложением наличия обновлений. Поведение обновления может быть задано в манифесте развертывания, или оно может быть представлено в виде вариантов выбора в пользовательском интерфейсе приложения с помощью функций API ClickOnce. Кроме того, свойства пункта Публикация могут использоваться, чтобы сделать обновления обязательными или чтобы откатить их назад к более ранней версии. Дополнительные сведения см. в разделе Выбор стратегии обновления ClickOnce.

Таблица сравнения технологии ClickOnce с технологией установщика Windows

Сравнение функций развертывания по технологии ClickOnce и развертывания с помощью установщика Windows описывается в следующей таблице:

Функция

ClickOnce

Установщик Windows

Автоматическое обновление1

Да

Да

Откат назад после установки2

Да

Нет

Обновление из Интернета

Да

Нет

Не влияет на общие компоненты и другие приложения

Да

Нет

Предоставляемые разрешения безопасности

Предоставляет только разрешения, необходимые для приложения (более безопасно)

Предоставляет по умолчанию разрешения полного доверия (менее безопасно)

Требуемые разрешения безопасности

Зона Интернета или интрасети (полное доверие для установки с компакт-диска)

Администратор

Подписание манифеста приложения и манифеста развертывания

Да

Нет

Интерфейс пользователя во время установки

Одно приглашение

Многоэлементный мастер

Установка сборок по запросу

Да

Нет

Установка общих файлов

Нет

Да

Установка драйверов

Нет

Да (с настраиваемыми действиями)

Установка в глобальный кэш сборок

Нет

Да

Установка для нескольких пользователей

Нет

Да

Добавление приложения в меню Пуск

Да

Да

Добавление приложения в группу запуска

Нет

Да

Добавление приложения в меню Избранное

Нет

Да

Регистрация типов файлов

Нет

Да

Установка временного доступа к реестру3

Ограниченная

Да

Исправление двоичных файлов

Нет

Да

Местоположение установки приложения

Кэш приложения ClickOnce

Папка Программные файлы

Примечания

1. С помощью установщика Windows необходимо реализовать программные обновления в коде приложения.

2. При использовании технологии ClickOnce откат доступен в меню Установка и удаление программ.

3. Развертывание ClickOnce может получить доступ к разделу реестра HKEY_LOCAL_MACHINE (HKLM) только с разрешением полного доверия.

Дополнительные сведения см. в разделе Выбор стратегии развертывания.

См. также

Задачи

Практическое руководство. Публикация приложения ClickOnce

Основные понятия

Выбор стратегии развертывания ClickOnce

Выбор стратегии обновления ClickOnce

Развертывание и безопасность ClickOnce

Выбор стратегии развертывания

Другие ресурсы

Развертывание ClickOnce