[VB.NET] Релизация обновления модуля программы через интеренет.

Mufy

Господа,
есть маленькая программулинка, к которой периодически приходится выпускать багфиксы (путем рассылки нового exe-шника).
Хотелось бы релизовать в программке возможность самоcтоятельного обновления, т.е. чтобы она при запуске лезла на какой-нить сайтик и смотрела наличие обновлений, если таковые есть, то сама скачаивала бы их и применяла в работе.
теперь, собственно, суть проблематики:
1) программа состоит из нескольких независимых частей (описанных в разных файлах и использующихся на разных формах - Form.vb но они почему-то в Visual Studio компилируются в один exe-шник.
Как заставить Visual Studio компилировать проект в несколько файлов (в соотвествии со структурой проекта которые потом можно будет обновлять? желательно, чтобы была возможность обновлять и сами формы.
2) какие методы использовать для обновления файлов(см. п.1)?
Буду признателен за любую помощь.
PS в программировании не профи, это всего лишь маленькое хобби.

Serab

программа состоит из нескольких независимых частей (описанных в разных файлах и использующихся на разных формах - Form.vb но они почему-то в Visual Studio компилируются в один exe-шник.
можно создать отдельные проекты dll, вынести в них независимые части, будет компилировать отдельно. Просто создаешь там проект соответствующего типа, потом перетаскиваешь туда файлы в solution explorer, правишь возникшие проблемы (надо будет публики проставить скорее всего) и все должно заработать.

hwh2010

Буду признателен за любую помощь.
помогу советом
не хочешь гореть в аду — завязывай с самообновляющимися программами

Mufy

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

Dasar

лучше наоборот делать один файл, его проще обновлять.
общая схема обновления:
1. скачивается новая версия
2. запускается вспомогательный exe-шник
3. прибивается основная программа
4. старая версия на всякий случай сохраняется
5. новая версия копируется на место основной программы
6. запускается основная программа
7. прибивается вспомогательный exe-шник
основные грабли:
1. с правами на запись в папку, где находится программа
2. восстановление работоспособности программы, если что-то не получилось (файл какой-то был залочен, места не хватило и т.д.)
3. согласованность обновления, если программа обновляется по частям

Mufy

хм, тоже думал над этим.
реализация проста и мне под силу даже без изучения дополнительного материала, но что-то мне подсказывает, что это не является "хорошим стилем".
мое представление об обновлении программ - именно обновляются модули, а не целиком экзешник.
как вообще происходит обновление крутых программ (какой-нить Windows и т.д.)?

Dasar

у тебя программа сколько весит?

Dasar

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

Mufy

у тебя программа сколько весит?
101 кб
я понимаю к чему уклон :)
просто хочется сделать так, чтобы потом не стыдно было "детям рассказывать", т.е. применяя системный подход.

Dasar

применяя системный подход.
первое правило системного подхода - чем проще, тем лучше :)
ps
на объеме 100кб уж точно обновлять надо целиком.

Mufy

первое правило системного подхода - чем проще, тем лучше psна объеме 100кб уж точно обновлять надо целиком.
ок. пасиба за совет.
мне нравится его простота. это будет, навреное, временное решение, пока не найду системный подход. :cool:
Оставить комментарий
Имя или ник:
Комментарий: