Поделиться через


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

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

Примечание.

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

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

  • При обновлении приложения не для первой установки приложения.

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

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

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

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

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

Примечание.

В ClickOnce для .NET Core 3.1 и .NET 5 или более поздней версии используйте dotnet-mage.exe вместо Mage.exe. Дополнительные сведения см. в разделе ClickOnce для .NET.

обновления 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 сначала необходимо указать текущее расположение обновления, а не новое расположение. В этом случае при попытке вставки deploymentProviderhttp://subdomain.adatum.com/MyApplication/ссылки на следующее обновление завершается ошибкой.

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

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