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