Развертывание приложений ClickOnce без подписания заново

Обновлен: Ноябрь 2007

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

Bb384243.alert_note(ru-ru,VS.90).gifПримечание.

Подписание заново по-прежнему остается предпочтительным методом развертывания новых версий приложений. По возможности используйте метод подписания заново. Дополнительные сведения см. в разделе Средство создания и редактирования манифеста (Mage.exe).

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

  • При обновлении приложения, не являющегося первой установкой этого приложения.

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

Исключение параметра deploymentProvider из манифестов развертывания

В .NET Framework 2.0 и .NET Framework 3.0 любое приложение, которое устанавливается в системе для обеспечения доступа к нему в автономном режиме, должно указывать параметр deploymentProvider в своем манифесте развертывания. Параметр deploymentProvider часто упоминается как местоположение обновления; это место, в котором ClickOnce проверяет наличие обновлений приложения. Данное требование в сочетании с необходимостью для издателей приложений подписывать свои развертывания, затрудняет для компании обновление приложения ClickOnce от поставщика или другой сторонней компании. Это также усложняет развертывание одного и того же приложения из нескольких мест в одной сети.

С учетом изменений, внесенных в ClickOnce в .NET Framework 3.5, у сторонних организаций есть возможность предоставлять приложение ClickOnce другой организации, которая затем может развернуть приложение в своей собственной сети.

Чтобы воспользоваться преимуществами этой функции, разработчики приложений ClickOnce должны исключить параметр deploymentProvider из своих манифестов развертывания. Это означает исключение аргумента -providerUrl при создании манифестов развертывания с помощью Mage.exe, или убедитесь, что текстовое поле Местоположение запуска на вкладке Манифест приложения оставлено пустым, если манифесты развертывания создаются с помощью MageUI.exe.

Параметр deploymentProvider и обновления приложений

Начиная с .NET Framework 3.5 больше не требуется указывать deploymentProvider в манифесте развертывания, чтобы развернуть приложение ClickOnce как для интерактивного, так и для автономного применений. Это обеспечивает поддержку сценария, где требуется самому упаковать и подписать развертывание, и другим компаниям разрешается разворачивать приложение в их сетях.

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

Здесь приводятся два примера, поясняющие это положение. В первом примере публикуется приложение ClickOnce, не имеющее тега deploymentProvider, и пользователей просят установить его с веб-узла http://www.adatum.com/MyApplication/. Если решено опубликовать следующее обновление приложения с веб-узла http://subdomain.adatum.com/MyApplication/, отсутствует способ указать это в манифесте развертывания, который находится по адресу http://www.adatum.com/MyApplication/. Можно выполнить одно из двух действий.

  • Попросить пользователей удалить предыдущую версию и установить новую версию из нового местоположения.

  • Включить обновление на веб-узел http://www.adatum.com/MyApplication/, который содержит аргумент deploymentProvider, указывающий на веб-узел http://www.adatum.com/MyApplication/. Затем выпустить позже другое обновление с аргументом deploymentProvider, указывающим на веб-узел http://subdomain.adatum.com/MyApplication/.

Во втором примере публикуется приложение ClickOnce, которое задает аргумент deploymentProvider, а затем принимается решение удалить его. После того как новая версия без аргумента deploymentProvider загружена клиентам, невозможно перенаправить путь, используемый для обновлений, пока не будет выпущена версия приложения, имеющая восстановленный аргумент deploymentProvider. Как и в первом примере, аргумент deploymentProvider должен первоначально указывать на местоположение текущего обновления, а не на новое местоположение. В этом случае, если попытаться вставить аргумент deploymentProvider, ссылающийся на веб-узел http://subdomain.adatum.com/MyApplication/, тогда следующее обновление не будет выполнено успешно.

Создание развертывания

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

См. также

Ссылки

Средство создания и редактирования манифеста (Mage.exe)

Средство создания и редактирования манифестов, графический клиент (MageUI.exe)