2

Окружающая среда:.NET механизм обновления простое приложение

  • .NET
  • C#
  • Visual Studio 2005 и
  • компоненты Некоторые сторонние
  • .vdproj файлы (проекты установки внутри Визуальный   студии   2005) для здания .msi - не «ClickOnce развертывание»

Проблема

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

Предложение

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

Так что мои мысли идут дальше ...

клиентского приложения для этого: просто, дня или два работы. Соображения:

  • должны заботиться о разрешениях для записи файлов в директории программы пользователя (на самом деле я беспомощен, если я не могу)
  • Придётся начать процесс получения обновлений, который будет загружать и заменять файлы и перезапуск исходное приложение
  • Необходимо сделать локальный файл XML с хэшами при первом запуске, и для этого мне нужен локальный список развернутых файлов, которые могут измениться (поскольку все они находятся не только в локальной папке приложения)

Серверная сторона тривиальна, но есть и сома е соображения:

  • Корневой файл с текущим описанием версии, списком файлов и хэш
  • вручную загружать файлы на сервер, создать инструмент для хеширования файлов

Есть ли какой-то инструмент, который следует моему поезду думали сделать это без особых хлопот со стороны?

+0

Хм, кажется, что каждые указанные ниже варианты есть проблема: COM-файлы не являются и я не нашел возможности указать целевой каталог для файла. Любопытный ... –

ответ

4

То, что вы описываете, очень похоже на ClickOnce. Да. Я заметил, что вы написали, что приложение установлено через MSI, и все в порядке.

ClickOnce - это больше, чем просто первоначальная установка. Есть много вариантов, и вы can set it up so that it checks for updates even if the application is already running, и есть также API, который вы можете использовать, если декларативный подход недостаточно гибкий для вас.

+0

согласен: похоже, что mosmondor переписывает clickonce. Есть ли функция MSI, в которой вы зависите, не может быть реплицирована в clickonce? –

+0

Я был немного осторожен вокруг ClickOnce, но я должен сказать, что он работает так, как рекламируется, и на самом деле прямо настроен на настройку. –

+0

Было что-то, что отвратило меня от использования ClickOnce. У меня было ощущение, что это отличная идея, но она не была отполирована и будет оставлена ​​как некоторые изобретения M $ ... –

Смежные вопросы