Речь идет о технологии развертывания .NET приложений.
Приложения ClickOnce - это приложения .NET(Console, WinForms, WPF) и С++, которые были опубликованы с помощью технологии развертывания ClickOnce. Теоретически при помощи утилит Mage и MageUI можно развернуть любое исполняемое Windows приложение.
Приемущества по сравнению с другими способами развертывания(xcopy, WindowsInstaller).
ClickOnce приложения может попасть в руки пользователю из разных источников:
- C Web-Страницы или сетевого каталога.
- С компакт диска или любого другого сьемного носителя. При публикования дистрибутива autorun генерируется автоматически.
- Пользователь может сразу запускать приложения, без его установки на свой ПК. Фактически, приложение копируется в Кэш ClickOnce. Кстати, его размер по умолчанию 250 мб, находится кеш в пользовательском каталоге, а значит не доступен другим пользователям. Чтоб изменить его размер нужно изменить один ключь в реестре. Подробней в msdn.
ClickOnce предоставляет гибкие средства для обновления приложений пользователя. Теперь не нужно рассылать письма "Вышла новая версия, скачайтее ее тут". Приложения теперь обновляются автоматически. Обновляться будут только те файлы которые изменились(изменения определяются по хешам файлов).
Проверка наличия обновления может быть:
- До запуска приложения. Если есть новая версия, пользователь будет работать с ней, иначе со старой.
- После запуска. Пока пользователь работает с вашей программой, .NET, с определенной периодичностью, в фоне, будет проверять наличие новой версии. При следующем запуске будет предложено обновить версию.
- Разработчик может реализовать свой вариант обновления, для этого предоставляется специальный API.
В дополнение, можно установить минимальную версию приложения для запуска. Если установить последную версию как минимальную, пользователь не сможет работать с приложением не обновив его.
По умолчанию ClickOnce приложения выполняются в контексте безопасности Internet. Приложению предоставляется минимум ресурсов.
Процесс создания дистрибутива, называется опубликование(publish). Во время этого процесса в целевой директории на диске или в сети / ftp ресурсе /IIS приложении создается иерархия каталогов с необходимыми файлами. В отличии от WindowsInstaller, в ClickOnce монолитного дистрибутива нет. Как раз это и позволяет производить обновление только изменившихся файлов.
Основные составляющие ClickOnce приложения:
- Манифест приложения.
- Манифест развертывания.
- Развертываемое приложение и все его компоненты.
Пример каталога полученного в результате публикации приложения с названием "<AppName>".
- PublishDir
- <AppName>.application [Основной манифест развертывания, как раз его и должный запрашивать пользователи.]
- Publish.htm [html файл, генерируется автоматически. Основная задача указать ссылку на скачивание файла манифеста развертывания <AppName>.application]
- <AppName>_1_0_0_1.application [маниест развертывания соответствующий версии, создается для каждой новой версии]
- <AppName>_1_0_0_1 [папка в которой содержатся все файлы приложения данной версии, а так же манифест приложения, создается для каждой новой версии]
- <AppName>.exe.deploy [расширение ".deploy" добавляется ко всем файлам приложения, по умолчанию. Это упрощает процесс настройки прав доступа к файлам на вебсервере. Нужно разрешить вебсевиру отдавать пользователю только файлы с расширением ".deploy", ".manifest", ".application".]
- <AppName>.exe.manifest [манифест приложения.]
Создать ClickOnce приложение можно несколькими способами:
- Через Visual Studio - самый простой, но с ограничениями.
- При помощи MSBuild из консоли.
- При помощи консольной утилиты Mage.exe из .NET SDK или ее более дружелюбного варианта под названием MageUI.exe.
Используя MSBuild или mage.exe можно добится полностью автоматизированного опубликования приложения. Например, публиковать новую версию при каждом удачном TeamBuild в Team Foundation Server или по расписанию.
Самое большое ограничение при создании ClickOnce через MSBuild или VisualStudio в том, что конечный список файлов состоит только из исполняемых модулей проекта и проктов связанных с ним ссылкой(References). Если мы хотим добавить какой-либо Help или Config файл который не включен в публекуемый проект, стоит использовать утилиты mage или MageUI (лежат они в .NET SDK).
Обзор практической части развертывания порекомендую смотреть доклад на TechDays.ru (http://www.techdays.ru/videos/1274.html)
Всякие мелочи.
- Есть возможность. Задать URL службы тех поддержки для вашего приложения.
- Вы можете подписать свое ClickOnce приложение сертификатом выданным центром сертификации. Тем самым вы подтвердите, что разработчик этого приложения именно вы, а не какой-нибудь хитрый трояно писатель.
- Если вашему приложению требуются какие либо особенные компоненты, например, .NET 3.5 и не сотой ниже. В случае отсутствия требуемого компонента, пользователю будет предложено скачать недостоющую часть(источник можно задать произвольный).
Плохая новость.
Работает ClickOnce это только в IE. Для Firefor и Opera необходимо поставить соответствующий плагин или конфигурировать браузер.
Плагин для FireFox.
Настройки для Opera:
Идем в Tools->Preferences->Advanced->Downloads ->Add..
Устанавливаем параметры:
MimeType: application/x-ms-application
Extension: application
Select Open With Other Application: explorer.exe ( он обычно в папке Windows лежит)
Ставим галку напротив "Pass Web Address Directly To The Application ".
Попробовать поставить приложение ClickOnce можно тут. RiotClipboard.
ClickOnce в интернетах:
http://wiki.dodex.org/?p=447
http://www.c-gator.ru/articles/deploying/
http://www.techdays.ru/videos/1274.html
http://msdn.microsoft.com/ru-ru/library/142dbbz4.aspx
5b7505e3-7c0b-4fa0-88c3-963b8e350cdb|2|5.0
.NET, Visual Studio
deploiment, сlickonce, .net