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

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 приложения выполняются в зонах безопасности Интернета или интрасети. При необходимости приложение может запросить повышение прав. дополнительные сведения см. в разделе Secure ClickOnce applications.

принципы работы ClickOnce безопасности

основная ClickOnce безопасность основана на сертификатах, политиках управления доступом для кода и запросе ClickOnceного доверия.

Сертификаты

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

Управление доступом для кода

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

Запрос о доверии ClickOnce

Если приложение запрашивает больше разрешений, чем позволяет зона, пользователю может быть предложено принять решение о доверии. конечный пользователь может решить, могут ли выполняться ClickOnce приложения, такие как Windows Forms приложения, Windows Presentation Foundation приложения, консольные приложения, приложения браузера XAML и Office решения. дополнительные сведения см. в разделе как настроить поведение запроса ClickOnce о доверии.

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

Основная ClickOnce архитектура развертывания основана на двух файлах манифеста XML: манифесте приложения и манифесте развертывания. эти файлы используются, чтобы описать, откуда устанавливаются ClickOnce приложения, как они обновляются и когда они обновляются.

Публикация приложений ClickOnce

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

Манифест развертывания содержит описание развертывания приложения. Сюда входит расположение манифеста приложения и версия приложения, которое должны выполняться клиентами.

развертывание ClickOnce приложений

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

установка ClickOnce приложений

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

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

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

Примечание

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

обновление ClickOnce приложений

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

Примечание

для выполнения этих действий можно использовать мастер публикации в Visual Studio.

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

Сторонние установщики

вы можете настроить установщик ClickOnce для установки сторонних компонентов вместе с приложением. Необходимо иметь распространяемый пакет (.exe или .msi файл) и описать пакет манифестом продукта, не зависящим от языка, и манифестом пакета, зависящим от языка. Дополнительные сведения см. в разделе Создание пакетов начального загрузчика.

средства ClickOnce

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

Инструмент Описание
Страница "Безопасность" в конструкторе проектов Подписывает манифесты приложения и развертывания.
Страница публикации в конструкторе проектов создает и редактирует манифесты приложения и развертывания для Visual Basic и приложений Visual C#.
Mage.exe (Инструмент создания и изменения манифестов) создает манифесты приложения и развертывания для Visual Basic, Visual C# и Visual C++ приложений.

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

Может выполняться из пакетных скриптов и из командной строки.
MageUI.exe (Инструмент создания и изменения манифестов, графический клиент) Создает и редактирует манифесты приложения и развертывания.

Подписывает и повторно подписывает манифесты приложения и развертывания.
GenerateApplicationManifest - задача Создает манифест приложения.

Можно запустить из MSBuild. дополнительные сведения см. в разделе справочник по MSBuild.
GenerateDeploymentManifest - задача Создает манифест развертывания.

Можно запустить из MSBuild. дополнительные сведения см. в разделе справочник по MSBuild.
SignFile - задача Подписывает манифесты приложения и развертывания.

Можно запустить из MSBuild. дополнительные сведения см. в разделе справочник по MSBuild.
Microsoft.Build.Tasks.Deployment.ManifestUtilities Разрабатывайте собственное приложение для создания манифестов приложения и развертывания.

в следующей таблице показана версия платформа .NET Framework, необходимая для поддержки ClickOnce приложений в этих браузерах.

Браузер Версия платформы .NET Framework
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

См. также