Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается функция 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 из манифестов развертывания. Это требование означает, что при создании манифестов развертывания необходимо исключить -providerUrl аргумент с Mage.exe. Или, если вы создаете манифесты развертывания с 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, которое не требует повторного подписывания и сохранения сведений о фирменной символике.