Нажмите один раз для услуг? - PullRequest
1 голос
/ 24 февраля 2010

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

Есть ли хорошие решения для этого?

Ответы [ 3 ]

2 голосов
/ 25 февраля 2010

Попробуйте installer.codeeffects.com . Он имеет эту функцию.

2 голосов
/ 24 февраля 2010

Это может быть сложно, в зависимости от того, что ваше обновление может захотеть сделать.

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

Чтобы заменить компоненты службы, сначала необходимо остановить службу. Если ваша служба сама обнаруживает наличие обновлений, возможно, ей придется запустить другой процесс, чтобы остановить службу, запустить программу установки / обновления и затем перезапустить службу.

1 голос
/ 25 февраля 2010

Вы можете попробовать MEF (http://www.codeplex.com/MEF) и использовать

[Import("http://someUrl/someComponent")]
public ISomeComponent SomeService;

На самом деле это не автоматическое обновление, но служба всегда может быть в курсе. Я не уверен, что это работает .. это просто идея :-)

...