Хобрук: Ваш путь к мастерству в программировании

Изменить URL-адрес обновления для приложения ClickOnce

Можно ли изменить URL обновления на другое расположение установленного приложения ClickOnce? Если да, то как я могу это сделать?

25.09.2012

  • где вы хотите изменить URL-адрес обновления: со стороны клиента или со стороны сервера? 25.09.2012
  • Кажется, это подробно описывает то, что вы хотите: noreferrer">social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/ 25.09.2012
  • @Cybermaxs-я хочу изменить со стороны клиента. Клиент уже установил приложение clickonce, и мне нужно изменить URL-адрес проверки обновлений. 27.09.2012

Ответы:


1

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

См. раздел , как переместить развертывание ClickOnce.

08.03.2013
  • Путь UNC можно задать в формате \\Server\ApplicationName. Итак, этот пост, на который вы ссылаетесь, предполагает, что я должен знать точное место, где обновления будут находиться в локальной сети клиента, когда я публикую свое приложение? И если у клиента есть некоторые изменения (например, папка переименована), то единственный способ изменить то, где мое приложение ищет обновления, - это выполнить новую установку (с новым расположением обновления), переустановив старую версию и установив новую версию. ? Это правильно? Нет способа настроить этот путь обновления со стороны приложения? 08.05.2014

  • 2

    Можно ли с помощью трюка. Вы можете развернуть его в месте публикации по умолчанию. (приложение не должно проверять наличие обновлений). Затем скопируйте свое развертывание на сервер клиентов. Просто установите приложение на клиентские машины. Поле System.Deployment.Application.ApplicationDeployment.CurrentDeployment.UpdateLocation.AbsoluteUri содержит расположение и приложение, из которого установлено приложение. Если вы это знаете, вы можете просто выполнить этот URL. Чтобы проверить, есть ли обновление, просмотрите файл .application на предмет версии.

    это мой вспомогательный класс:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Xml;
    
    namespace MatemanSC.Utility
    {
        public class ClickOnceUtil
        {
            Version _UpdateVersion = null;
            public string UpdateLocation
            {
                get
                {
                    return System.Deployment.Application.ApplicationDeployment.CurrentDeployment.UpdateLocation.AbsoluteUri;
                }
            }
            public Version AvailableVersion
            {
                get
                {
                    if (_UpdateVersion == null)
                    {
                        _UpdateVersion = new Version("0.0.0.0");
                        if (System.Deployment.Application.ApplicationDeployment.IsNetworkDeployed)
                        {
                            using (XmlReader reader = XmlReader.Create(System.Deployment.Application.ApplicationDeployment.CurrentDeployment.UpdateLocation.AbsoluteUri))
                            {
                                //Keep reading until there are no more FieldRef elements
                                while (reader.ReadToFollowing("assemblyIdentity"))
                                {
                                    //Extract the value of the Name attribute
                                    string versie = reader.GetAttribute("version");
                                    _UpdateVersion = new Version(versie);
                                }
                            }
                        }
                    }
                    return _UpdateVersion;
                }
            }
            public bool UpdateAvailable
            {
                get
                {
                    return System.Deployment.Application.ApplicationDeployment.CurrentDeployment.CurrentVersion != AvailableVersion;
                }
            }
            public string CurrentVersion
            {
                get
                {
                    return System.Deployment.Application.ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString();
                }
            }
    
            public void Update()
            {
                System.Diagnostics.Process.Start(System.Deployment.Application.ApplicationDeployment.CurrentDeployment.UpdateLocation.AbsoluteUri);
                Environment.Exit(0);
            }
    
            public void CheckAndUpdate()
            {
                try
                {
                    if (UpdateAvailable)
                        Update();
                }
                catch (Exception)
                {
                }
            }
        }
    }
    

    А вот как это использовать:

    public partial class App : Application
    {
        public App()
        {
            ClickOnceUtil clickonceutil = new ClickOnceUtil();
            clickonceutil.CheckAndUpdate();
        }
    }
    
    21.04.2016

    3

    Если вы хотите изменить URL-адрес, который вы будете использовать для обновления программ, вы можете просто использовать переписывание URL-адреса в web.config: старая программа будет указывать на старый URL-адрес, но она принесет новую программу с новым URL-адресом. .

    29.04.2016
    Новые материалы

    мои январские чтения по программированию
    Эрик Эллиот Программирование приложения JavaScript Эл Свейгарт «Автоматизируйте скучные вещи с помощью Python» Прогрессивное веб-приложение Google..

    Создание ассоциаций секвелизации с помощью инструмента командной строки Sequelize
    Sequelize - популярный, простой в использовании инструмент объектно-реляционного сопоставления (ORM) JavaScript, который работает с базами данных SQL. Довольно просто начать новый проект с..

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

    Введение в машинное обучение для обнаружения аномалий (часть 1)
    Тщательно созданный, тщательно спроектированный ресурс для специалистов по данным. Часть 1 Главы 03 из Руководства по машинному обучению для обнаружения аномалий Внимание! Прежде чем вы..

    Начало работы с Pulumi в Digital Ocean
    Цифровой океан (ДО) — отличная альтернатива многим другим поставщикам облачных услуг. DO предоставляет простой и понятный пользовательский интерфейс, упрощающий управление инфраструктурой и..

    #Day68 из #100days_of_coding
    Вчера был мой 68-й день кодинга. я решил один вопрос Проблема: Разбить двоичную строку на подстроки с равным количеством нулей и единиц Дана двоичная строка str длины N . Задача состоит..

    Воспроизведение теперь возможно с помощью React
    Как я реализовал Reparenting с помощью нескольких строк кода Я разрабатываю приложение, похожее на Trello . На главной странице мне нужны несколько вертикальных списков и несколько..