Оглавление
Microsoft предоставили возможность облегчить труд программистов под Desktop, а именно, процесс установки и обновления вашего приложения на компьютерах пользователей через ClickOnce. Способ достаточно простой и на серверной стороне, которая предоставляет доступ к экземпляру приложения, не требуется никаких дополнительных сервисов, кроме тех которые поддерживают доступ к опубликованному контенту. Клиент сам занимается своим обновлением путем скачивания заведомо сформированных файлов приложения и манифеста. Если у пользователя установлен .NET Framework, то в его составе имеется Engine, которая будет осуществлять процесс установки. От разработчика будет требоваться только контроль за версией приложения.
Из чего состоит ClickOnce приложение?
- «Клиентское приложение» — приложение разработанное вами, и именно его планируется устанавливать вашим клиентам.
- «ClickOnce приложение» — подготовленное для развертывания «клиентское приложение» и дающее возможность себя устанавливать и обновлять.
Какие минимальные требования к клиентскому приложению?
Неделя 5: 6 Публикация приложения
- У вашего решения, которое планируется разворачивать, должен быть хотя бы один исполняемый модуль (*.exe file). Он будет являться «Точкой входа» для вашего запускаемого приложения
- Так же сам исполняемый модуль должен быть написан для .NET, иначе у вас не получится создать ClickOnce приложение. НО! При это можно создать .NET Launcher, который после установки запускать ваше Native приложение.
Как создается ClickOnce приложение штатными средствами в Visual Studio?
- Для демонстрации Клиентское приложение, которые будем конвертировать в ClickOnce Приложение состоять из 2 файлов:
- Используя Visual Studio достаточно выбрать ваш исполняемый модуль, зайти в свойства проекта и найти закладку «Publish»
Publish folder = «E:ClieckOnceRoot» это путь локальной директории, её я добавил как виртуальный каталог на IIS в корень «Default Web Site». По умолчанию «Default Web Site» сайт слушает 80-й порт и значит папка будет доступна по адресу «http://localhost/publishroot/». Publish Version — это уже непосредственно номер версии ClickOnce приложения. Если не указывать абсолютный путь для Publish folder, тогда папка будет размещена по адресу %YOURPROJECTPATH%Путь.
Внимание! Если у вас идет какой-то свой инкремент для файлов сборок, то он не обязательно должен совпадать с версией публикации.
ООП (продвинутый поток) 1. Аллокаторы
После нажатие на кнопку «Publish Now» произойдет публикация файлов в указанную директорию. В итоге в папке E:ClickOnceRoot окажутся:
- WpfApplication4.application — Файл приложения в котором хранятся все предустановленные настройки, зависимости и ключи. И является лаунчером вашего приложения. После запуска этого файла из браузера или из локальной директории появится окно ниже с возможностью начать установку приложения:
- publish.htm — стандартная страница с кнопкой установки. Перейдя по ссылке http://localhost/publishroot/publish.htm она будет иметь вид (рисунок ниже), по нажатию на кнопку Install начнется установка с вэб страницы.
- Setup.exe — файл так же является лаунчером приложения, как уже было сказано выше, но основная задача это загрузка необходимого для запуска приложения Заранее заданных пакетов.
Почему я пометил как заранее? Очень часто наличие NET Framework является требованием к рабочей станции для администратора системы. Но при установки вашего приложения администратор системы не всегда может помнить, что для вашего приложения требуются ещё какие то обновления. В итоге непонятные ошибки при установке. Согласитесь, было бы круто, если бы клиент в полуавтоматическом режиме устанавливал все, что ему нужно для запуска? В ClickOnce можно сделать это задав параметры в окне при нажатии на [Prerequisites]:
Мастер изначально выбрал «Microsoft .NET Framework 4 (x86 and x64)» так как мой исполняемый модуль приложения WpfApplication4 имеет такой Target Framework. Так же у меня был выбран «Windows Installer» — он по умолчанию выбирается всегда, так как требуется для установки любого пакета MSI. Снизу можно выбрать места установки, если у клиентов будет доступ в интернет, то можно выбрать установка с сайта производителя, если это заказное ПО для какой-то организации, у которых чаще всего есть ограничения на доступ во внешнюю сеть, тогда можно воспользоваться установкой из указанного места. Ссылка на установку How to: Install Prerequisites with a ClickOnce Application
Снимок ниже это пример запуска Setup.exe на клиенте у котором нет .NET Framework 4:
Если изначально на компьютере стоит не подходящий для работы .NET Framework. Тогда запуск WpfApplication4.application пройдет с ошибкой:
- Application Files В этой папке будут появляться и оставаться все версии вашего приложения после каждой публикации. Сразу скажу, что данный подход свойственен сборке через [Publish now] в Visual Studio.
- Application FilesWpfApplication4_1_0_0_10 (Пример одной из папок)
Возникает вопрос: «Зачем использовать добавление .deploy к файлам, если ClickOnce приложение без проблем устанавливается и без этого расширения?» — если отсутствие данного расширения не влияет на развёртывание вашего приложения, то можно без него обойтись. Но если вы разворачиваете приложение через Web и в качестве хостинг службы используете IIS, тогда у вас могу возникнуть проблемы с клиентом при скачивании .config файлов и возможно каких то других, потому что политика безопасности IIS не позволяет без дополнительных разрешений скачивать все подряд. А добавив .deploy вы избавляете себя от проблем с особенностями Web сервисов.
- Application FilesWpfApplication4_1_0_0_10WpfApplication4.application — аналогичный по содержанию файл корневого каталога
- Application FilesWpfApplication4_1_0_0_10WpfApplication4.exe.manifest — самый важный файл в папке, содержащий всю информацию о развёртываемых файлах. Такую как контрольная сумму каждого файла, их размеры версия и тип.
Источник: www.devowl.net
Развертывание и безопасность технологии ClickOnce
Область применения:Visual Studio
Visual Studio для Mac
Visual Studio Code
ClickOnce — это технология развертывания, позволяющая создавать приложения Windows с возможностью самообновления, которые могут устанавливаться и запускаться с минимальным вмешательством пользователя. Visual Studio обеспечивает полную поддержку публикации и обновления приложений, развернутых с помощью технологии ClickOnce, если вы разработали проекты с помощью Visual Basic и Visual C#. Сведения о развертывании приложений Visual C++ см. в разделе «Развертывание ClickOnce для приложений Visual C++».
Развертывание ClickOnce преодолевает три основных проблемы при развертывании:
- Трудности обновления приложений. При развертывании установщика Microsoft Windows при каждом обновлении приложения пользователь может установить обновление, msp-файл и применить его к установленному продукту; с помощью развертывания ClickOnce можно автоматически предоставлять обновления. Скачиваются только те части приложения, которые изменились, а затем полное обновленное приложение переустановлено из новой параллельной папки.
- Влияние на компьютер пользователя. При развертывании установщика Windows приложения часто используют общие компоненты, что может привести к конфликтам управления версиями; при развертывании ClickOnce каждое приложение является автономным и не может вмешиваться в другие приложения.
- Разрешения безопасности. Для развертывания установщика Windows требуются административные разрешения и разрешена только ограниченная установка пользователей; Развертывание ClickOnce позволяет пользователям без прав администратора устанавливать и предоставлять только те разрешения на доступ к коду, которые необходимы для приложения. В прошлом эти проблемы иногда приводили к тому, что разработчики решили создавать веб-приложения вместо приложений на основе Windows, что позволяет упростить установку полнофункциональные пользовательские интерфейсы. С помощью приложений, развернутых с помощью ClickOnce, вы можете использовать лучшие из обеих технологий.
Что такое приложение ClickOnce?
Приложение ClickOnce — это любое Windows Presentation Foundation (XBAP), Windows Forms (.exe), консольное приложение (.exe) или решение Office (.dll), опубликованное с помощью технологии ClickOnce. Приложение ClickOnce можно опубликовать тремя разными способами: с веб-страницы, из сетевого файлового ресурса или с устаревших носителей, таких как компакт-диск. Приложение ClickOnce можно установить на компьютере конечного пользователя и запустить локально, даже если компьютер находится в автономном режиме, или его можно запустить в режиме «только в сети», не устанавливая ничего на компьютере конечного пользователя. Дополнительные сведения см. в статье «Выбор стратегии развертывания ClickOnce».
Приложения ClickOnce могут быть самообновления; Они могут проверять наличие новых версий по мере их доступности и автоматически заменять все обновленные файлы. Разработчик может указать поведение обновления; сетевой администратор также может управлять стратегиями обновления, например, устанавливая обязательность обновления. Обновления также можно выполнить откат до более ранней версии конечным пользователем или администратором. Дополнительные сведения см. в статье «Выбор стратегии обновления ClickOnce».
Так как приложения ClickOnce изолированы, установка или запуск приложения ClickOnce не могут нарушить работу существующих приложений. Приложения ClickOnce являются автономными; каждое приложение ClickOnce устанавливается и запускается из защищенного кэша для каждого пользователя. Приложения ClickOnce выполняются в зонах безопасности Интернета или интрасети. При необходимости приложение может запросить повышение прав. Дополнительные сведения см. в разделе «Безопасные приложения ClickOnce».
Как работает безопасность ClickOnce
Базовая безопасность ClickOnce основана на сертификатах, политиках безопасности доступа к коду и запросе доверия ClickOnce.
сертификаты;
Сертификаты Authenticode используются для проверки подлинности издателя приложения. Используя Authenticode для развертывания приложений, ClickOnce помогает предотвратить отображение вредоносной программы как законной программы, поступающей из установленного надежного источника.
При необходимости сертификаты также можно использовать для подписывания манифестов приложения и развертывания, чтобы доказать, что файлы не были изменены. Дополнительные сведения см. в разделе ClickOnce и Authenticode. Сертификаты также можно использовать для настройки клиентских компьютеров списка доверенных издателей. Если приложение поступает от доверенного издателя, его можно установить без участия пользователя. Дополнительные сведения см. в обзоре развертывания доверенных приложений.
Управление доступом для кода
Безопасность доступа к коду помогает ограничить доступ к защищенным ресурсам. В большинстве случаев можно выбрать зоны Интернета или локальной интрасети, чтобы ограничить разрешения. Используйте страницу «Безопасность » в ProjectDesigner , чтобы запросить зону, соответствующую приложению. Вы также можете отлаживать приложения с ограниченными разрешениями для эмуляции взаимодействия с конечным пользователем. Дополнительные сведения см. в статье Управление доступом для кода для приложения ClickOnce.
Запрос о доверии ClickOnce
Если приложение запрашивает больше разрешений, чем разрешена зона, пользователю может быть предложено принять решение о доверии. Конечный пользователь может решить, являются ли приложения ClickOnce, такие как Windows Forms приложения, Windows Presentation Foundation приложения, консольные приложения, приложения браузера XAML и решения Office. Дополнительные сведения см. в разделе «Практическое руководство. Настройка поведения запроса доверия ClickOnce».
Как работает развертывание ClickOnce
Базовая архитектура развертывания ClickOnce основана на двух XML-файлах манифеста: манифеста приложения и манифеста развертывания. Файлы используются для описания того, откуда устанавливаются приложения ClickOnce, как они обновляются и когда они обновляются.
Публикация приложений ClickOnce
Манифест приложения описывает само приложение. Сюда входят сборки, зависимости и файлы, составляющие приложение, необходимые разрешения и расположение, в котором будут доступны обновления. Разработчик приложения создает манифест приложения с помощью мастера публикации в Visual Studio (средство публикации для .NET Core и .NET 5+) или Инструмент создания и изменения манифестов (Mage.exe) в пакете средств разработки программного обеспечения Windows (SDK). Дополнительные сведения см. в разделе:
- Развертывание классического приложения .NET с помощью ClickOnce
- Разверните классическое приложение платформа .NET Framework с помощью ClickOnce.
Манифест развертывания содержит описание развертывания приложения. Сюда входят расположение манифеста приложения и версия приложения, которую должны запускать клиенты.
В ClickOnce для .NET Core 3.1 и .NET 5 или более поздней версии используйтеdotnetmage.exe вместо Mage.exe. Дополнительные сведения см. в разделе ClickOnce для .NET.
Развертывание приложений ClickOnce
После создания манифеста развертывания он копируется в место развертывания. Это может быть веб-сервер, сетевая общая папка или устаревший носитель, например компакт-диск. Манифест приложения и все файлы приложения также копируются в расположение развертывания, указанное в манифесте развертывания. Оно может совпадать с местом развертывания или отличаться от него. При использовании мастера публикации в Visual Studio операции копирования выполняются автоматически.
Установка приложений ClickOnce
После завершения развертывания в указанном месте конечные пользователи могут загрузить и установить приложение, щелкнув значок файла манифеста развертывания на веб-странице или в папке. В большинстве случаев конечному пользователю предоставляется простое диалоговое окно с просьбой подтвердить установку, после чего начнется установка и приложение запускается без дополнительного вмешательства. В случаях, когда приложению требуются повышенные разрешения или если приложение не подписано доверенным сертификатом, диалоговое окно также запрашивает у пользователя разрешение, прежде чем установка будет продолжена. Хотя установка ClickOnce выполняется на пользователя, при наличии необходимых условий, требующих прав администратора, может потребоваться повышение прав разрешений. Дополнительные сведения о повышенных разрешениях см. в разделе «Защита приложений ClickOnce».
Сертификаты можно доверять на уровне компьютера или предприятия, чтобы приложения ClickOnce, подписанные доверенным сертификатом, могли автоматически устанавливаться. Дополнительные сведения о доверенных сертификатах см. в обзоре развертывания доверенных приложений.
Приложение можно добавить в меню «Пуск» пользователя и в группу «Добавить или удалить программы» в панель управления. В отличие от других технологий развертывания, ничего не добавляется в папку Program Files или реестр, а права администратора не требуются для установки.
Кроме того, можно запретить добавление приложения в меню «Пуск » и группу «Добавить или удалить программы «, что делает его поведение как веб-приложение. Дополнительные сведения см. в статье «Выбор стратегии развертывания ClickOnce».
Обновление приложений ClickOnce
Когда разработчики приложений создают обновленную версию приложения, они создают новый манифест приложения и копируют файлы в расположение развертывания ( обычно это папка с общими элементами в исходную папку развертывания приложения). Администратор обновляет манифест развертывания, чтобы он указывал на расположение новой версии приложения.
Мастер публикации в Visual Studio можно использовать для выполнения этих действий. Для .NET Core и .NET 5 и более поздних версий средство публикации предоставляет следующие действия.
Помимо размещения развертывания в манифесте развертывания также содержится размещение обновления (веб-страница или общий сетевой ресурс), проверяемое приложением на наличие обновленных версий. Свойства публикации ClickOnce используются для указания времени и частоты проверки обновлений приложением. Поведение обновления можно указать в манифесте развертывания или представить в виде пользовательских вариантов в пользовательском интерфейсе приложения с помощью API ClickOnce. Кроме того, в свойствах публикации может указываться обязательность обновлений или откат к предыдущей версии. Дополнительные сведения см. в статье «Выбор стратегии обновления ClickOnce».
Сторонние установщики
Установщик ClickOnce можно настроить для установки сторонних компонентов вместе с приложением. Необходимо иметь распространяемый пакет (.exe или файл .msi) и описать пакет с манифестом продукта, не зависящим от языка, и манифестом пакета для конкретного языка. Дополнительные сведения см. в разделе «Создание пакетов начального загрузчика».
Средства ClickOnce
В следующей таблице показаны средства, которые можно использовать для создания, редактирования, подписывания и повторной подписи манифестов приложения и развертывания. Для .NET Core и .NET 5+ параметры, аналогичные атрибутам MSBuild, задаются с помощью профиля публикации.
Подписывает и повторно подписывает манифесты приложения и развертывания.
Подписывает и повторно подписывает манифесты приложения и развертывания.
В следующей таблице показана версия платформа .NET Framework, необходимая для поддержки приложений ClickOnce в этих браузерах.
Internet Explorer | 2.0, 3.0, 3.5, 3.5 SP1, 4 |
Firefox | 2.0 SP1, 3.5 SP1, 4 |
Chrome | 3,5 |
Microsoft Edge | 3,5 |
См. также раздел
- Развертывание ClickOnce в Windows Vista
- Публикация приложений ClickOnce
- Защита приложений ClickOnce
- Развертывание компонентов COM с помощью ClickOnce
- Создание приложений ClickOnce из командной строки
- Отладка приложений ClickOnce, использующих System.Deployment.Application
Источник: learn.microsoft.com
ClickOnce — новая технология развертывания приложений / Разное #1 / C#
ClickOnce — новая технология развертывания приложений
ClickOnce — новая технология развертывания приложений , которая делает развертывание основанного на Windows Forms приложения столь же простым, как и развертывание Веб-приложения. С «ClickOnce» выполнение приложения Windows Forms столь же просто, как щелчок по ссылке на Веб-странице. Для администраторов, развертывание или обновление приложения — просто вопрос обновления файлов на сервере; нет никакой надобности индивидуально касаться каждого клиента.
Приложения «ClickOnce» не требуют существенных воздействий. Приложения полностью замкнуты и устанавливают под-пользователем, что означает, что права администратора не требуются. Вам не нужно волноваться о нарушении работы других приложений приложением «ClickOnce». Однако, если ваше приложение действительно должно сделать кое-что опасное во время установки, например устанавливая драйверы, MSI — все еще лучший выбор для Вас.
Приложения «ClickOnce» могут быть развернуты с Веб-серверов, файловых серверов или компакт-диска. Приложение «ClickOnce» может выбирать, быть установленным или нет, то есть, оно получает стартовое меню и элементы установки/удаления программ, или просто быть запущено и кэшироваться. «ClickOnce» имеет несколько способов конфигурирования автоматической проверки наличия обновлений. Альтернативно, приложения могут использовать ClickOnce APIs (System.Deployment), чтобы определять момент, когда должны происходить обновления.
В Visual Studio есть обширная поддержка публикации приложений через «ClickOnce». В любое время, как только Вы захотели, можно запросто опубликовать существующий проект приложения Windows Forms на сетевой сервер. Visual Studio автоматически генерирует файлы xml manifest, которые управляют «ClickOnce» и публикует приложение на указанный сервер.
Приложения «ClickOnce» работают в безопасном режиме, обеспеченным моделью CLR Code Access Security. Visual Studio дает возможность разработчику работать с таими возможностями, как отладка по F5 в зоне безопасности и инструментом анализа кода, который определяет необходимые разрешения приложения. Для приложений, которые нуждаются в более высоком уровне доверия, «ClickOnce» поддерживает и модель запроса пользователя, и расширенный механизм предразвертывания политики защиты для администраторов.
Когда речь заходит о развертывающихся по сети приложениях, становится важен их размер. Чтобы немного облегчить эту проблему, «ClickOnce» поддерживает сжатие HTTP. Приложения «ClickOnce» также имеют возможность загружать себя инкрементально. Прикладные файлы могут быть отмечены как опциональные, и затем само приложение может использовать System.Deployment APIs, чтобы проинструктировать «ClickOnce», какие обозначенные файлы необходимо загрузить.
![]() |
Источник: netcode.ru
Запутался с ClickOnce развертыванием
Здравствуйте. Хочу подробнее понять механизм работы ClickOnce.
Расскажите пожалуйста, куда установщик ClickOnce кладет файлы моей программы после установки на компьютере пользователя?
Объясню детально:
Я в свойствах проекта на вкладке Publish сформировал развертывание.
Открылась сетевая папка с файлом setup.exe. Пользователь установил его. Но я в силу своей логики, совершенно не понимаю, в какую директорию установилось развертывание на компьютере пользователя.
Программа есть и в «Установленных» и в меню «Пуск», обновление тоже работает. Но как мне привычно установить в директорию C:/Program Files мою программу?
И второй вопрос — как задать этой установленной программе иконку? Что то я не разобрался с этой мелочью.
Спасибо. Надеюсь на помощь. Очень хочу поподробнее все узнать об этой технологии.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Проблема с развертыванием
Доброго времени суток. Я новичок в вопросе баз данных. Возникла следующая ситуация. Есть сервер на.
Траблы с развертыванием
Сначала попытался сделать сам свой сервлет без IDE. Возникли траблы с web.xml (как я предполагаю ).
Проблемы с развертыванием XBAP приложения
Доброго времени суток. Проблема заключается в следующем: есть браузерное WPF приложение.
ClickOnce
Расскажите, пожалуйста, про эту технологию. Где хранятся файлы после установки этим методом, если.
Источник: www.cyberforum.ru