Document 5099124

advertisement
Пётр Алексеев
Доцент кафедры «Радиоэлектронных
систем управления» (И4)
БГТУ «Военмех»
Microsoft TechDays
http://www.techdays.ru
Что такое ClickOnce?
ClickOnce с помощью Visual Studio
Взаимодействие ClickOnce с кодом
Как устроен ClickOnce
Зачем обходиться без Visual Studio?
MSBuild, Mage и MageUI
Microsoft TechDays
http://www.techdays.ru
ClickOnce – это технология развёртывания
оконных и консольных приложений с
возможностью автоматического обновления
Обновление приложения целиком или только
его отдельных частей
Установка производится в специальную папку
«кэш ClickOnce»
Изменяемые данные приложения сохраняются
в папку данных ClickOnce
Для установки не требуются права
администратора
Приложения могут распространяться через
Web, локальную сеть или на дисках
Приложения XBAP (XAML Browser
Application) основаны на ClickOnce
Microsoft TechDays
http://www.techdays.ru
Microsoft TechDays
http://www.techdays.ru
Сборка System.Deployment
Область имён System.Deployment.Application
Ключевой класс ApplicationDeployment
Возможности
Узнать, развёрнуто ли данное приложение с помощью
ClickOnce IsNetworkDeployed
Узнать, первый ли запуск приложения IsFirstRun
Узнать параметры запуска приложения ActivationUri
Узнать номер версии развёрнутого приложения CurrentVersion
Проверить наличие обновлений CheckForUpdate,
CheckForUpdateAsync, CheckForDetailedUpdate
Установить обновление Update, UpdateAsync
Узнать, когда была последняя проверка обновления
TimeOfLastUpdateCheck
Загрузка необязательных файлов и сборок по требованию
DownloadFileGroup, DownloadFileGroupAsync
Особенности отладки http://msdn.microsoft.com/ruru/library/ms228671.aspx
Microsoft TechDays
http://www.techdays.ru
Microsoft TechDays
http://www.techdays.ru
Манифест приложения
Приложение
Сборки
Зависимости
Дополнительные файлы
Необходимые разрешения безопасности
Расположение обновлений
Манифест развёртывания
Развёртывание приложения
Расположение манифеста приложения
Версия приложения для запуска клиентами
Файлы и сборки приложения
Microsoft TechDays
http://www.techdays.ru
Папка Application Files
Имя_Приложения_1_0_0_0
Имя_Приложения.application
Имя_Приложения.exe.manifest
Файлы и папки приложения
Имя_Приложения_1_0_0_1
Имя_Приложения_1_0_0_2
Имя_Приложения.application
setup.exe
Microsoft TechDays
http://www.techdays.ru
Зачем это надо?
Если не хватает возможностей,
предоставляемых Visual Studio
Если необходимо выполнять развёртывание
по расписанию или автоматически после
интеграции
Как это сделать?
MSBuild
Mage
Microsoft TechDays
http://www.techdays.ru
Эквивалент команды Publish
msbuild /target:publish
Не копирует файлы в место назначения
Номер ревизии не инкрементируется
Управление
msbuild /target:publish /property:BootstrapperEnabled=false – не
генерировать загрузчик setup.exe
Другие команды
TargetZone=LocalIntranet (Internet, Custom)
PublisherName=SomeCompany
ProductName=SomeProduct
PublishUrl=http://localhost/SomeProduct
ApplicationVersion=1.0.0.* (1.0.0.5)
ApplicationRevision=5
Install=true
UpdateEnabled=true
UpdateMode=Foreground (Background)
UpdateInterval=3
UpdateIntervalUnits=Days (Weeks, Hours)
UpdateUrlEnabled=false
IsWebBootstrapper=true
Microsoft TechDays
http://www.techdays.ru
Microsoft TechDays
http://www.techdays.ru
Сборка приложения
Удаление папки app.publish (папка публикации)
Создание папок
app.publish
app.publish\Application Files
app.publish\Application Files\Имя_Приложения_Номер_Версии
Копирование файлов
Файлы и папки приложения в app.publish\Application
Files\Имя_Приложения_Номер_Версии
Работа с манифестами
Создание и заполнение манифеста приложения в соответствии с
содержимым папки app.publish\Application
Files\Имя_Приложения_Номер_Версии
Подписание манифеста приложения
Создание манифеста развёртывания
Привязка манифеста развёртывания к манифесту приложения
Подписание манифеста развёртывания
Копирование содержимого папки app.publish в место расположения
дистрибутива
Microsoft TechDays
http://www.techdays.ru
Mage и MageUI входят в состав
SDK .NET Framework
SDK for Windows Vista
Visual Studio 2008
Назначение
Создание и редактирование манифестов приложения и
развёртывания
Создание сертификатов
makecert.exe -sv MyKey.pvk -n "CN=Test" MyKey.cer
pvk2pfx.exe -pvk MyKey.pvk -spc MyKey.cer -pfx MyPfx.pfx
-po 123
Создание и подписание манифестов – делаем
посредством графического интерфейса
пользователя MageUI
Создание папок и работа с файлами – делаем
вручную
Microsoft TechDays
http://www.techdays.ru
Microsoft TechDays
http://www.techdays.ru
Используем ранее созданный сертификат
Создание манифеста приложения
Mage -New Application -FromDirectory "app.publish\Application
Files\SampleApp_1_0_0_10" -Version 1.0.0.10 -ToFile
"app.publish\Application
Files\SampleApp_1_0_0_10\SampleApp.exe.manifest"
Подписание манифеста приложения
Mage -Sign "app.publish\Application
Files\SampleApp_1_0_0_10\SampleApp.exe.manifest" -CertFile
MyPfx.pfx -pwd 123
Создание манифеста развёртывания
Mage -New Deployment -AppManifest "app.publish\Application
Files\SampleApp_1_0_0_10\SampleApp.exe.manifest" -ToFile
"app.publish\SampleApp.application"
Настройка манифеста развёртывания
Mage -Update "app.publish\SampleApp.application" -Version 1.0.0.10 MinVersion 1.0.0.10 -ProviderUrl "C:\Test" -Publisher "Sample publisher"
Подписание манифеста развёртывания
Mage -Sign "app.publish\SampleApp.application" -CertFile MyPfx.pfx pwd 123
Microsoft TechDays
http://www.techdays.ru
Microsoft TechDays
http://www.techdays.ru
Развёртывание с помощью Visual Studio
удобно, но имеет и ограничения
Использование MSBuild позволяет
автоматизировать развёртывание
Применение MageUI и Mage позволяет
делать тонкую настройку развёртывания
Развёртывание приложений, не
ориентированных на ClickOnce
Добавление в дистрибутив любых файлов
Создание новых манифестов не обязательно –
можно один раз создать их с помощью Visual
Studio, а потом модифицировать
Microsoft TechDays
http://www.techdays.ru
http://msdn.microsoft.com/ruru/library/t71a733d.aspx
http://msdn.microsoft.com/ruru/vbasic/ms789088.aspx
http://msdn.microsoft.com/ruru/library/system.deployment.application.aspx
http://blogs.msdn.com/maximelamure/archive/2007/
01/24/create-your-own-pfx-file-for-clickonce.aspx
http://netobf.com/obf_click_once_about
http://www.softwarepunk.com/ffclickonce
http://www.rsdn.ru/article/dotnet/WinForms20.xml#E
Y1BG
http://blogs.msdn.com/saurabh/archive/2005/10/28/4
86106.aspx
Microsoft TechDays
http://www.techdays.ru
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Microsoft TechDays
http://www.techdays.ru
Download