2008-09-29 4 views
4

Мне нужно установить некоторое программное обеспечение .NET на несколько ПК.Как я могу обновить приложение по сети в .NET?

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

Конечные пользователи будут иметь основные права пользователя и, следовательно, не могут копировать файлы в каталог «Program Files».

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

Тем не менее, я хотел создать свой обновитель, поэтому он будет независимым от приложения. То есть Я бы отправил идентификатор обновления, чтобы сообщить, какое приложение будет обновляться.

Затем я хотел, чтобы он все еще работал, если имя файлового сервера было изменено.

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

  1. Есть ли класс, который уже делает это?
  2. Я нахожусь на правильном пути, когда я думаю об использовании установленной службы?

ответ

7

.NET Framework имеет встроенную функцию, называемую clickonce, которая делает именно то, что вы хотите.

+0

Я согласен нажать один раз именно то, что вам нужно – 2008-09-29 14:18:21

2

Посмотрите на ClickOnce развертывание. Он охватывает практически все, что вы просили. Он не выполняет обновление приложения по идентификатору, но он уверен, что каждое приложение обновляется до настоящего времени, без необходимости писать код обновления для каждого приложения. И он не будет автоматически обрабатывать изменения имени файла-сервера, но вы можете указать свои ссылки по мере необходимости.

+0

ха-ха ... бить вас за один раз:.. Р – 2008-09-29 14:34:56

0

1) В зависимости от используемой версии .NET. > = 2.0. Вы можете развернуть смарт-приложения, которые могут проверять сетевой путь для обновленной версии, а затем при необходимости обновлять.

2) Если вы застряли в 1.1 (Как и я :-(), либо служба, либо запланированная задача, выполняемая при входе в систему, будет работать нормально, вот что мы здесь делаем. Мы сохраняем несколько таблиц DB, которые отслеживать, кто имеет самую последнюю версию того, что

-ian