обновление проекта c#

128
16 ноября 2021, 22:30

Столкнулся с такой задачей по обновлению клиента приложения.

private void GetProductVersion()
        {
            int currentVersion = Convert.ToInt32(Application.ProductVersion.Replace(".", ""));
            int versionRemote = 0;
            string queryProductVersion = String.Format("select \"file_ver\" from dbo.AutoUpdates where \"module_name\" = 'KDocMessage'");
            var loadData = cs.LoadFile("DataConnection.xml");
            string connString = String.Format("Data Source={0};Initial Catalog={1};User Id={2};Password={3}", loadData.Host, loadData.Database, loadData.UserId, loadData.PWD);
            using (SqlConnection conn = new SqlConnection(connString))
            {
                conn.Open();
                using (SqlCommand cmd = new SqlCommand(queryProductVersion, conn))
                {
                    versionRemote = Convert.ToInt32(cmd.ExecuteScalar().ToString().Replace(".", ""));
                }
            }
        }

После идет сравнение версий, и если не совпадают то нужно скачать обновление и перезапустить клиент. В нете в основном инфа про WebClient, нужно чтобы обновляло с ftp сервера(на ПК), там лежит папка с "свежими" файлами. Может кто поделится полезной ссылочкой.

Я так понимаю должно осуществляться это через Directory? Нужен ли для этого второй exe-шник?

При нажатии на публикацию просит ввести адрес папки-установки

Когда выбираю папку, выдает такую ошибку

Answer 1

На данный момент, кмк, самый удобный способ это использовать ClickOnce.

  1. Необходимо указать путь по которому будет опубликовано приложение. Путь к публикации должен быть вида URL или UNC например \Server\SharedFolder\Folder\File или http://server/folder

  1. Указать версию публикации, именно это значение в дальнейшем ClickOnce будет сравнивать со значением версии приложения на клиенте.

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

  1. После введения всех параметров, нажать кнопку опубликовать, либо воспользоваться мастером публикации.

  2. Установить приложение из места публикации.

READ ALSO
Сортировка поверх группировки LINQ

Сортировка поверх группировки LINQ

Имеется коллекция с даннымиЯ пишу к ней следующий запрос:

293
Unity Rigidbody.Addforce Impulse

Unity Rigidbody.Addforce Impulse

Необходимо, чтобы объект paddle толкал объект sphere и второй получал импульс, после этого второй объект бы катился от импульсаТо, что получается...

248
Имя отсутствует в текущем контексте C#

Имя отсутствует в текущем контексте C#

Есть форма FormData и форма FormResultНа первой есть textBox и Button

116
datagridview позиция слов

datagridview позиция слов

Подскажите, пожалуйста, как вывести каждую позицию слова в отдельному столбце грида? Вывожу позиции так:

257