Обзор установки приложения через ClickOnce |
![]() |
Добавил(а) microsin | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Технология развертывания приложения ClickOnce позволяет Вам создать самостоятельно обновляющиеся приложения Windows, которые могут быть установлены и запущены с минимальными усилиями со стороны пользователя. Публикация ClickOnce призвана преодолеть 3 главные проблемы, свойственные традиционным методам развертывания/установки приложения: Сложность в обновлении приложений. При развертывании с помощью Microsoft Windows Installer всякий раз, когда обновляется приложение, пользователь должен переустановить все приложение полностью, что обычно требует административных привилегий. При развертывании ClickOnce обновления можно предоставлять автоматически. Загрузятся только те части приложения, которые были изменены, и затем полное, обновленное приложение будет заново установлено в новой папке. В прошлом эти проблемы иногда заставляли разработчиков создавать Web-приложения вместо приложений Windows, принося в жертву богатый возможностями, отзывчивый графический интерфейс Windows Forms с целью избавиться от проблем с инсталляцией и обновлениями. С приложениями, развертываемыми через ClickOnce, Вы получаете лучшее от обоих этих техник. Что из себя представляет приложение ClickOnce? Установлено, что ClickOnce применяется для развертывания любых приложений Windows Presentation Foundation (WPF), Windows Forms или консольных (приложений командной строки). Вы можете публиковать приложение ClickOnce тремя разными способами: с Web-станицы, с сетевой общей папки (network file share), или с любого носителя данных наподобие папки на диске или CD-ROM. Приложение ClickOnce может быть установлено на компьютере пользователя, и запущено на нем локально даже тогда, когда этот компьютер отключен от сети (offline), или даже приложение может быть запущено только в режиме подключения к сети (online-only mode), без какой-либо постоянной установки на компьютер пользователя. Для получения дополнительной информации см. [2]. Приложения ClickOnce могут обновлять сами себя; они могут проверять наличие более новой версии, и автоматически заменить любые обновленные файлы. Разработчик может задать поведение обновления; администратор сети также может управлять стратегиями обновлений, например помечая обновление как обязательное. Обновления также можно откатить назад к предыдущей версии конечным пользователем или администратором [2]. Из-за того, что приложения ClickOnce по сути изолированы (не влияют на общую рабочую среду и мало зависят от неё), инсталляция или запуск приложения ClickOnce не может повредить существующие приложения. Приложения ClickOnce полностью самодостаточны; каждое приложение ClickOnce устанавливается и запускается безопасно, индивидуально для каждого пользователя, потому что для каждого пользователя существует отдельная копия приложения в кэше приложения, находящемся в профиле пользователя. По умолчанию приложения ClickOnce запускаются в зонах безопасности Internet (внешняя общая мировая сеть) или Intranet (большая внутренняя сеть организации). Если это необходимо, приложение может выдать запрос на повышение привилегий (request elevated security permissions, см. [3]). Как работает развертывание ClickOnce. Ядро архитектуры публикации ClickOnce основано на 2 файлах манифеста XML: application manifest и deployment manifest. Application manifest описывает само приложение, включая сборки, зависимости и файлы, которые входят в состав приложения, требуемые разрешения и место нахождения доступных обновлений. Разработчик приложения создает application manifest с помощью Publish Wizard в Visual Studio 2005, или с помощью утилиты генерации манифеста (manifest generation tool Mage.exe) в .NET Framework SDK. Для дополнительной информации см. [4]. Deployment manifest описывает, как приложение развертывается, включая место нахождения application manifest и версию приложения, которое должны запустить клиенты. Администратор создает deployment с помощью manifest generation tool (Mage.exe), входящего в состав .NET Framework SDK. Примечание: Publish Wizard в Microsoft Visual Studio 2005 также генерирует deployment manifest. После того, как deployment manifest создан, он копируется в место развертывания (deployment location). Это может быть Web-сервер, общая сетевая папка или носитель данных наподобие CD. Application manifest и все файлы приложения также копируются в место развертывания, которое указывается в deployment manifest. Это может быть то же самое место, что и место развертывания, или это может быть другое место. Когда используется мастер публикации (Publish Wizard) в Microsoft Visual Studio 2005, эти операции копирования выполняются автоматически. Примечание: если разработчик является также и администратором, т. е. имеет привилегии Administrator для Web-сайта или общей сетевой папки (file share), куда будет копироваться deployment manifest, то этот манифест представляет все, что требуется. Если разработчик не администратор, то администратор должен использовать инструмент командной строки чтобы обновить и подписать манифест. После того, как deployment manifest размещен в место развертывания, конечные пользователи могут загрузить и установить приложение кликом на иконку, представляющую файл deployment manifest на Web-страничке или в папке. Для большинства случаев конечному пользователю показывается простое окно диалога, запрашивающее подтверждение инсталляции, после чего без всяких дополнительных вопросов начнется инсталляция, после чего установленное приложение автоматически запустится. В случаях, когда приложению требуется повышение привилегий (elevated permissions), окно диалога запросит у пользователя разрешение на предоставления разрешения, после чего установка может продолжится. После установки приложение добавляется в меню Пуск (Start menu) и в список установленных приложений (Add/Remove Programs group) Панели Управления операционной системы Windows (Control Panel). В отличие от других технологий развертывания, ничего не добавляется ни в папку Program Files, ни в реестр, ни на рабочий стол, и для инсталляции не требуется административных привилегий. Примечание: есть возможность предотвратить добавление приложения в меню Пуск и в список установленных приложений, в результате получится эффект поведения наподобие Web-приложения [2]. Когда разработчик приложения создает обновленную версию приложения, он также генерирует новый application manifest, и копирует файлы в место развертывания - обычно это папка одного и того же уровня по отношению к оригинальной папке развертывания приложения. Администратор обновляет deployment manifest, чтобы указать на место размещения новой версии приложения. Примечание: для выполнения этих шагов может использоваться Publish Wizard из Microsoft Visual Studio 2005. В дополнение к месту развертывания deployment manifest также содержит место нахождения обновления (update location, это может быть Web-страничка или общая сетевая папка, network file share), где приложение проверяет наличие обновленных версий. Свойства публикации (ClickOnce Publish) также используются для для указания, когда и как часто приложение должно проверять наличие обновлений. Поведение обновления может быть задано в deployment manifest, или это может быть представлено как выбор пользователя в интерфейсе самого приложения с помощью ClickOnce API. Дополнительно свойства публикации могут сделать обновления обязательными, или можно задать откат к более ранней версии [5]. В следующей таблице сравниваются возможности техники развертывания ClickOnce и традиционной техники установки Windows Installer:
Примечания: (1) При использовании Windows Installer Вы должны реализовать обновление программно в коде приложения. [Ссылки] 1. ClickOnce Deployment Overview site:msdn.microsoft.com. |