Утилита для получения последней версии приложения Windows forms из общего сетевого ресурса

#winforms #deployment #synchronization

Вопрос:

Существует ли какая-либо утилита, которая скопирует «официальную» сборку приложения Windows forms из центрального сетевого ресурса и запустит ее (с рабочего стола клиента)? Я хочу убедиться, что пользователи получат последнюю версию при обновлении двоичных файлов в центральном сетевом ресурсе.

ClickOnce не удобен для пользователя, поэтому я ищу что-то другое…

Ответ №1:

Возможно ли, что вы могли бы пересмотреть свой вопрос, чтобы описать, что вы находите недружественным в ClickOnce? В моем офисе мы обнаружили, что ClickOnce является самым эффективным и удобным способом обновления и распространения приложений для настольных бизнес-приложений, который у нас когда-либо был. Мне интересно, может ли лучший способ решить ваш вопрос-решить проблемы, возникающие у вас с ClickOnce, а не интегрировать/внедрять другое решение.

Ответ №2:

Я делал это раньше следующим способом:

1 — Храните «официальную» сборку в определенном сетевом местоположении

2 — Пользователь запускает программу со своего локального компьютера

3 — При запуске программа сравнивает свою собственную версию файла # с версией на сервере.

4 — Если две версии отличаются, скопируйте новую версию с сервера и перезапустите.

Довольно просто, и это работает до тех пор, пока вы находитесь в среде интрасети.

Шаг 4-единственная сложная часть. Вы не можете заменить файл, пока он используется, поэтому вам придется либо

1 — сначала переименуйте текущий (используемый) файл, а затем скопируйте новый. Поскольку вы будете обновлять много раз, вы также захотите удалить все существующие переименованные копии, которые висят вокруг.

или

2 — Попросите пользователя запустить «вспомогательное» приложение, которое проверяет версию, при необходимости обновляет, а затем запускает реальное приложение. Конечно, тогда вам придется иметь дело с обновлением вспомогательного приложения.

Ответ №3:

У нас есть инструмент, который мог бы это сделать, который использовался до того, как появилась такая вещь, как Центр обновления Windows (или любое другое обновление).

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

Наше решение состоит из двух частей/одного исполняемого файла: 1. режим службы, в котором выполняется локальная система или администратор для выполнения таких операций. 2. исполняемый файл, который может быть вызван приложением для извлечения через UNC, HTTP, FTP обновлений для приложения и их применения.

Основной процесс заключается в следующем: 1. Приложение проверяет номер своей версии; мы используем центральную базу данных для перечисления всех приложений и их номеров версий. 2. Если приложение является незначительной редакцией, мы даем пользователю возможность отказаться от установки; если это основная редакция, мы требуем установки. 3. Как только обновление подтверждено, мы вызываем исполняемый файл программы обновления, который совместно со своим продуктом в режиме обслуживания извлекает обновления, устанавливает их и перезапускает приложение.

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

Ответ №4:

Посмотрите на это:

Клиентские приложения .NET: Компонент обновления приложений .NET

Это белая книга, в которой подробно обсуждается, что требуется для автоматического обновления приложения.