Развертывание и безопасность технологии 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 Core и .NET 5+ эти параметры находятся в профиле публикации. |
Страница публикации в конструкторе проектов | Создает и редактирует манифесты приложения и развертывания для приложений Visual Basic и Visual C#. Для .NET Core и .NET 5+ эти параметры находятся в профиле публикации. |
Mage.exe (Инструмент создания и изменения манифестов) | Создает манифесты приложения и развертывания для приложений Visual Basic, Visual C# и Visual C++. Подписывает и повторно подписывает манифесты приложения и развертывания. Можно запускать из пакетных скриптов и командной строки. |
dotnetmage.exe (Инструмент создания и изменения манифестов) | Создает манифесты приложения и развертывания для приложений .NET 5+ C# и Visual Basic. Использование эквивалентно Mage.exe. Подписывает и повторно подписывает манифесты приложения и развертывания. Можно запускать из пакетных скриптов и командной строки. |
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 |