Развертывание и безопасность технологии ClickOnceClickOnce security and deployment

ClickOnceClickOnce— это технология развертывания, позволяющая создавать самостоятельно обновляемые приложения для Windows, которые можно устанавливать и запускать с минимальным участием пользователя.is a deployment technology that enables you to create self-updating Windows-based applications that can be installed and run with minimal user interaction. Visual StudioVisual Studioобеспечивает полную поддержку публикации и обновления приложений, развернутых с помощью технологии ClickOnce, если вы разработали проекты C#с Visual Basic и Visual.provides full support for publishing and updating applications deployed with ClickOnce technology if you have developed your projects with Visual Basic and Visual C#. Дополнительные сведения о развертывании C++ визуальных приложений см. в статье Развертывание ClickOnce для визуальных C++ приложений.For information about deploying Visual C++ applications, see ClickOnce Deployment for Visual C++ Applications.

ClickOnceClickOnceРазвертывание переводит три основные проблемы в развертывании:deployment overcomes three major issues in deployment:

  • Трудности обновления приложений.Difficulties in updating applications. При развертывании Microsoft установщик Windows при каждом обновлении приложения пользователь может установить обновление, MSP-файл и применить его к установленному продукту. При ClickOnceClickOnce развертывании обновления можно предоставлять автоматически.With Microsoft Windows Installer deployment, whenever an application is updated, the user can install an update, an msp file, and apply it to the installed product; with ClickOnceClickOnce deployment, you can provide updates automatically. Загружаются только те части приложения, которые были изменены, а затем полное обновленное приложение переустанавливается из новой параллельной папки.Only those parts of the application that have changed are downloaded, and then the full, updated application is reinstalled from a new side-by-side folder.

  • Влияние на компьютер пользователя.Impact to the user's computer. При развертывании установщик Windows приложения часто полагаются на общие компоненты, что может привести к конфликтам версий. При ClickOnceClickOnce развертывании каждое приложение является автономным и не может мешать работе других приложений.With Windows Installer deployment, applications often rely on shared components, with the potential for versioning conflicts; with ClickOnceClickOnce deployment, each application is self-contained and cannot interfere with other applications.

  • Разрешения безопасности.Security permissions. Для развертывания установщик Windows требуются административные разрешения. Это позволяет устанавливать только ограниченные пользователи. ClickOnceClickOnce развертывание позволяет пользователям без прав администратора устанавливать и предоставлять только необходимые для приложения разрешения управления доступом для кода.Windows Installer deployment requires administrative permissions and allows only limited user installation; ClickOnceClickOnce deployment enables non-administrative users to install and grants only those Code Access Security permissions necessary for the application.

    В прошлом эти проблемы иногда привели к тому, что разработчики решили создать веб-приложения, а не приложения на базе Windows, что позволит легко установить более мощный пользовательский интерфейс.In the past, these issues sometimes caused developers to decide to create Web applications instead of Windows-based applications, sacrificing a rich user interface for ease of installation. С помощью приложений, развернутых с помощью ClickOnceClickOnce, можно использовать преимущества обеих технологий.By using applications deployed using ClickOnceClickOnce, you can have the best of both technologies.

Что такое приложение ClickOnce?What is a ClickOnce application?

ClickOnceClickOnceПриложение — это любое Windows Presentation Foundation (XBAP), Windows Forms (. exe), консольное приложение (. exe) или решение Office (DLL), опубликованное с помощью технологии. ClickOnceClickOnceA ClickOnceClickOnce application is any Windows Presentation Foundation (.xbap), Windows Forms (.exe), console application (.exe), or Office solution (.dll) published using ClickOnceClickOnce technology. Вы можете опубликовать ClickOnceClickOnce приложение тремя разными способами: с веб-страницы, из общей сетевой папки или с носителя, например с компакт-диска.You can publish a ClickOnceClickOnce application in three different ways: from a Web page, from a network file share, or from media such as a CD-ROM. ClickOnceClickOnce Приложение может быть установлено на компьютере конечного пользователя и выполняться локально даже в том случае, если компьютер находится в автономном режиме, или его можно запускать только в оперативном режиме без окончательной установки на компьютере конечного пользователя.A ClickOnceClickOnce application can be installed on an end user's computer and run locally even when the computer is offline, or it can be run in an online-only mode without permanently installing anything on the end user's computer. Дополнительные сведения см. в статье Выбор стратегии развертывания ClickOnce.For more information, see Choose a ClickOnce deployment strategy.

ClickOnceClickOnceприложения могут обновляться самостоятельно; они могут проверять наличие новых версий по мере их появления и автоматически заменять все обновленные файлы.applications can be self-updating; they can check for newer versions as they become available and automatically replace any updated files. Разработчик может указать поведение обновления; сетевой администратор также может управлять стратегиями обновления, например, устанавливая обязательность обновления.The developer can specify the update behavior; a network administrator can also control update strategies, for example, marking an update as mandatory. Также можно выполнить откат обновлений до более ранней версии конечным пользователем или администратором.Updates can also be rolled back to an earlier version by the end user or by an administrator. Дополнительные сведения см. в статье Выбор стратегии обновления ClickOnce.For more information, see Choose a ClickOnce update strategy.

Поскольку ClickOnceClickOnce приложения изолированы, установка или ClickOnceClickOnce запуск приложения не могут нарушить работу существующих приложений.Because ClickOnceClickOnce applications are isolated, installing or running a ClickOnceClickOnce application cannot break existing applications. ClickOnceClickOnceприложения автономны; Каждое ClickOnceClickOnce приложение устанавливается и запускается из безопасного кэша на уровне пользователя и приложения.applications are self-contained; each ClickOnceClickOnce application is installed to and run from a secure per-user, per-application cache. ClickOnceClickOnceприложения выполняются в зонах безопасности Интернета или интрасети.applications run in the Internet or Intranet security zones. При необходимости приложение может запросить повышение прав.If necessary, the application can request elevated security permissions. Дополнительные сведения см. в разделе безопасные приложения ClickOnce.For more information, see Secure ClickOnce applications.

Принцип работы системы безопасности ClickOnceHow ClickOnce security works

Основная ClickOnceClickOnce безопасность основана на сертификатах, политиках управления доступом для кода и запросе о доверии ClickOnce.The core ClickOnceClickOnce security is based on certificates, code access security policies, and the ClickOnce trust prompt.

СертификатыCertificates

Сертификаты Authenticode используются для проверки подлинности издателя приложения.Authenticode certificates are used to verify the authenticity of the application's publisher. С помощью Authenticode для развертывания приложений технология ClickOnce помогает предотвратить портрайинг саму вредоносную программу в качестве легальной программы, поступающей от установленного надежного источника.By using Authenticode for application deployment, ClickOnce helps prevent a harmful program from portraying itself as a legitimate program coming from an established, trustworthy source. При необходимости сертификаты также можно использовать для подписания манифестов приложения и развертывания, чтобы доказать, что файлы не были изменены.Optionally, certificates can also be used to sign the application and deployment manifests to prove that the files have not been tampered with. Дополнительные сведения см. в разделе ClickOnce и Authenticode.For more information, see ClickOnce and Authenticode. Сертификаты также можно использовать для настройки на клиентских компьютерах списка доверенных издателей.Certificates can also be used to configure client computers to have a list of trusted publishers. Если приложение поступает от доверенного издателя, его можно установить без вмешательства пользователя.If an application comes from a trusted publisher, it can be installed without any user interaction. Для получения дополнительной информации см. раздел Общие сведения о развертывании доверенных приложений.For more information, see Trusted application deployment overview.

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

Управление доступом для кода помогает ограничить доступ кода к защищенным ресурсам.Code access security helps limit the access that code has to protected resources. В большинстве случаев для ограничения разрешений можно выбрать зоны Интернета или местной интрасети.In most cases, you can choose the Internet or Local Intranet zones to limit the permissions. Используйте страницу Безопасность в прожектдесигнер , чтобы запросить зону, соответствующую приложению.Use the Security page in the ProjectDesigner to request the zone appropriate for the application. Вы также можете отлаживать приложения с ограниченными разрешениями, чтобы эмулировать работу конечных пользователей.You can also debug applications with restricted permissions to emulate the end-user experience. Дополнительные сведения см. в статье Управление доступом для кода для приложения ClickOnce.For more information, see Code access security for ClickOnce applications.

Запрос о доверии ClickOnceClickOnce trust prompt

Если приложение запрашивает больше разрешений, чем позволяет зона, пользователю может быть предложено принять решение о доверии.If the application requests more permissions than the zone allows, the end user can be prompted to make a trust decision. Конечный пользователь может решить, являются ли приложения ClickOnce, такие как Windows Forms приложения, Windows Presentation Foundation приложения, консольные приложения, приложения браузера XAML и решения Office, доверенными для выполнения.The end user can decide if ClickOnce applications such as Windows Forms applications, Windows Presentation Foundation applications, console applications, XAML browser applications, and Office solutions are trusted to run. Дополнительные сведения см. в разделе Практическое руководство. настроить поведение запроса о доверии ClickOnce.For more information, see How to: Configure the ClickOnce trust prompt behavior.

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

Основная ClickOnceClickOnce архитектура развертывания основана на двух файлах манифеста XML: манифесте приложения и манифесте развертывания.The core ClickOnceClickOnce deployment architecture is based on two XML manifest files: an application manifest and a deployment manifest. Эти файлы используются, чтобы описать, откуда устанавливаются приложения ClickOnce, как они обновляются и когда они обновляются.The files are used to describe where the ClickOnce applications are installed from, how they are updated, and when they are updated.

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

Манифест приложения описывает само приложение.The application manifest describes the application itself. Сюда входят сборки, зависимости и файлы, составляющие приложение, необходимые разрешения и расположение, в котором будут доступны обновления.This includes the assemblies, the dependencies and files that make up the application, the required permissions, and the location where updates will be available. Разработчик приложения создает манифест приложения с помощью мастера публикации в Visual Studio или Инструмент создания и изменения манифестов (Mage. exe) в Windows SDKWindows Software Development Kit (SDK).The application developer authors the application manifest by using the Publish Wizard in Visual Studio or the Manifest Generation and Editing Tool (Mage.exe) in the Windows SDKWindows Software Development Kit (SDK). Дополнительные сведения см. в разделе Практическое руководство. опубликовать приложение ClickOnce с помощью мастера публикации.For more information, see How to: Publish a ClickOnce application using the Publish Wizard.

Манифест развертывания содержит описание развертывания приложения.The deployment manifest describes how the application is deployed. Сюда входит расположение манифеста приложения и версия приложения, которое должны выполняться клиентами.This includes the location of the application manifest, and the version of the application that clients should run.

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

После создания манифеста развертывания он копируется в место развертывания.After it is created, the deployment manifest is copied to the deployment location. Это может быть веб-сервер, общий сетевой ресурс или носитель, например компакт-диск.This can be a Web server, network file share, or media such as a CD. Манифест приложения и все файлы приложения также копируются в расположение развертывания, указанное в манифесте развертывания.The application manifest and all the application files are also copied to a deployment location that is specified in the deployment manifest. Оно может совпадать с местом развертывания или отличаться от него.This can be the same as the deployment location, or it can be a different location. При использовании мастера публикации в Visual Studio операции копирования выполняются автоматически.When using the Publish Wizard in Visual Studio, the copy operations are performed automatically.

Установка приложений ClickOnceInstall ClickOnce applications

После завершения развертывания в указанном месте конечные пользователи могут загрузить и установить приложение, щелкнув значок файла манифеста развертывания на веб-странице или в папке.After it is deployed to the deployment location, end users can download and install the application by clicking an icon representing the deployment manifest file on a Web page or in a folder. В большинстве случаев пользователю предоставляется простое диалоговое окно, предлагающее пользователю подтвердить установку, после чего установка будет продолжена, а приложение запустится без дополнительного вмешательства.In most cases, the end user is presented with a simple dialog box asking the user to confirm installation, after which installation proceeds and the application is started without additional intervention. В случаях, когда приложению требуются повышенные разрешения или приложение не подписано доверенным сертификатом, диалоговое окно также предлагает пользователю предоставить разрешение до того, как установка будет продолжена.In cases where the application requires elevated permissions or if the application is not signed by a trusted certificate, the dialog box also asks the user to grant permission before the installation can continue. Хотя установка ClickOnce выполняется для каждого пользователя, может потребоваться повышение прав, если имеются предварительные требования, требующие прав администратора.Though ClickOnce installs are per-user, permission elevation may be required if there are prerequisites that require administrator privileges. Дополнительные сведения о повышенных разрешениях см. в разделе Защита приложений ClickOnce.For more information about elevated permissions, see Securing ClickOnce applications.

Сертификаты могут быть доверенными на уровне компьютера или предприятия, чтобы приложения ClickOnce, подписанные с помощью доверенного сертификата, можно было устанавливать автоматически.Certificates can be trusted at the machine or enterprise level, so that ClickOnce applications signed with a trusted certificate can install silently. Дополнительные сведения о доверенных сертификатах см. в разделе Общие сведения о развертывании доверенных приложений.For more information about trusted certificates, see Trusted application deployment overview.

Приложение можно добавить в меню " Пуск " пользователя и в группу " Установка и удаление программ " на панели управления.The application can be added to the user's Start menu and to the Add or Remove Programs group in the Control Panel. В отличие от других технологий развертывания, в папку Program Files или реестр не добавляются никакие права администратора для установки не требуются.Unlike other deployment technologies, nothing is added to the Program Files folder or the registry, and no administrative rights are required for installation

Note

Кроме того, можно запретить добавление приложения в меню Пуск , а также Добавление или удаление группы программ , в результате чего оно будет работать как веб-приложение.It is also possible to prevent the application from being added to the Start menu and Add or Remove Programs group, in effect making it behave like a Web application. Дополнительные сведения см. в статье Выбор стратегии развертывания ClickOnce.For more information, see Choose a ClickOnce deployment strategy.

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

Когда разработчики приложений создают обновленную версию приложения, они создают новый манифест приложения и копируют файлы в место развертывания, обычно в папку с общим родителем, в исходную папку развертывания приложения.When the application developers create an updated version of the application, they generate a new application manifest and copy files to a deployment location—usually a sibling folder to the original application deployment folder. Администратор обновляет манифест развертывания, чтобы он указывал на расположение новой версии приложения.The administrator updates the deployment manifest to point to the location of the new version of the application.

Note

Для выполнения этих действий можно использовать Мастер публикации в Visual Studio.The Publish Wizard in Visual Studio can be used to perform these steps.

Помимо размещения развертывания в манифесте развертывания также содержится размещение обновления (веб-страница или общий сетевой ресурс), проверяемое приложением на наличие обновленных версий.In addition to the deployment location, the deployment manifest also contains an update location (a Web page or network file share) where the application checks for updated versions. ClickOnceClickOnceСвойства публикации используются, чтобы указать, когда и как часто приложение должно проверять наличие обновлений.Publish properties are used to specify when and how often the application should check for updates. Поведение обновления можно указать в манифесте развертывания или в качестве выбора пользователя в пользовательском интерфейсе приложения с помощью ClickOnceClickOnce интерфейсов API.Update behavior can be specified in the deployment manifest, or it can be presented as user choices in the application's user interface by means of the ClickOnceClickOnce APIs. Кроме того, в свойствах публикации может указываться обязательность обновлений или откат к предыдущей версии.In addition, Publish properties can be employed to make updates mandatory or to roll back to an earlier version. Дополнительные сведения см. в разделе Выбор стратегии обновления ClickOnce.For more information, see Choosing a ClickOnce update strategy.

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

Установщик ClickOnce можно настроить для установки сторонних компонентов вместе с приложением.You can customize your ClickOnce installer to install third-party components along with your application. Необходимо иметь распространяемый пакет (exe или MSI-файл) и описать пакет манифестом продукта, не зависящим от языка, и манифестом пакета, зависящим от языка.You must have the redistributable package (.exe or .msi file) and describe the package with a language-neutral product manifest and a language-specific package manifest. Дополнительные сведения см. в разделе Создание пакетов начального загрузчика.For more information, see Creating bootstrapper packages.

Средства ClickOnceClickOnce tools

В следующей таблице показаны средства, которые можно использовать для создания, редактирования, подписывания и повторного подписания манифестов приложения и развертывания.The following table shows the tools that you can use to generate, edit, sign, and re-sign the application and deployment manifests.

ToolTool ОписаниеDescription
Страница "Безопасность" в конструкторе проектовSecurity Page, Project Designer Подписывает манифесты приложения и развертывания.Signs the application and deployment manifests.
Страница публикации в конструкторе проектовPublish Page, Project Designer Создает и редактирует манифесты приложения и развертывания для Visual Basic и визуальных C# приложений.Generates and edits the application and deployment manifests for Visual Basic and Visual C# applications.
Mage.exe (инструмент создания и изменения манифестов)Mage.exe (Manifest Generation and Editing Tool) Создает манифесты приложения и развертывания для Visual Basic, визуальных C#и визуальных C++ приложений.Generates the application and deployment manifests for Visual Basic, Visual C#, and Visual C++ applications.

Подписывает и повторно подписывает манифесты приложения и развертывания.Signs and re-signs the application and deployment manifests.

Может выполняться из пакетных скриптов и из командной строки.Can be run from batch scripts and the command prompt.
MageUI.exe (инструмент создания и изменения манифестов, графический клиент)MageUI.exe (Manifest Generation and Editing Tool, Graphical Client) Создает и редактирует манифесты приложения и развертывания.Generates and edits the application and deployment manifests.

Подписывает и повторно подписывает манифесты приложения и развертывания.Signs and re-signs the application and deployment manifests.
Задача GenerateApplicationManifestGenerateApplicationManifest task Создает манифест приложения.Generates the application manifest.

Можно запустить из MSBuild.Can be run from MSBuild. Дополнительные сведения см. в разделе Справка по MSBuild.For more information, see MSBuild reference.
Задача GenerateDeploymentManifestGenerateDeploymentManifest task Создает манифест развертывания.Generates the deployment manifest.

Можно запустить из MSBuild.Can be run from MSBuild. Дополнительные сведения см. в разделе Справка по MSBuild.For more information, see MSBuild reference.
Задача SignFileSignFile task Подписывает манифесты приложения и развертывания.Signs the application and deployment manifests.

Можно запустить из MSBuild.Can be run from MSBuild. Дополнительные сведения см. в разделе Справка по MSBuild.For more information, see MSBuild reference.
Microsoft. Build. Tasks. Deployment. МанифестутилитиесMicrosoft.Build.Tasks.Deployment.ManifestUtilities Разрабатывайте собственное приложение для создания манифестов приложения и развертывания.Develop your own application to generate the application and deployment manifests.

В следующей таблице показана версия .NET Framework, необходимая для поддержки приложений ClickOnce в этих браузерах.The following table shows the .NET Framework version required to support ClickOnce applications in these browsers.

BrowserBrowser Версия платформы .NET Framework.NET Framework version
Internet ExplorerInternet Explorer 2.0, 3.0, 3.5, 3.5 SP1, 42.0, 3.0, 3.5, 3.5 SP1, 4
FirefoxFirefox 2.0 SP1, 3.5 SP1, 42.0 SP1, 3.5 SP1, 4

См. такжеSee also