C# NET помогите автообновление программы сделать http://www.denov.ru/?p=251 можно даже по этой статьи только вырезать разархивацию а рассказать что куда и как 100р icq 578312137
ну показывай код, что у тебя не работает,пальцем в небо тыкать никто не будет. По элементарной логике делаешь основной ехешник программы, который на инициализации чекает версию на сервере с версией на клиенте. Если не совпадает запускается отдельный ехе апдейтер. Апдейтер клозает процесс 1-ой программы. И выполняет загрузку с сервера новой ехешки. Пример довольно простой и хорошо разкоментирован, если хотя бы, что-то умеешь писать без проблем можно разобраться. Но, что-то у меня вызывает подозрение, что: "напишите мне, а я заплачу 100р" Если да, то это печально, если нет, то сори
а ты ведь прав я просто поленился подумать) одно не пойму где указать версию программы в тхт я понял а в самой программе где string version = Assembly.GetExecutingAssembly().GetName().Version. ToString(); не могу понять где версию программы писать ошибка http://www.keep2.me/files/ecd1ae0220be8a15fdfb1eea341d9996/20.29.20-14.10-927x407.jpg понял что он пытается перезаписать мой exe как раз когда через него качаю как исправить
тебе нужно сделать адейтер - отдельным процессом т.е. твоя основная программа запускает адейтер, который после запуска убивает основную программу, скачивает обновление и запускает основную программу. после чего сам завершается
зачем отдельный процесс? я делаю в основном всё а версию храни в константе, и при создании (компилировании) новой версии просто изменяй её на нужную.
ну, проверяю версию, и если есть новая - гружу, запускаю новую и завершаю работу старой. если нет - запускаю форму и далее по списку. но да, в этого метода есть существенный недостаток: названия версий НЕ должны быть одинаковыми, в противном случае нечего не выйдет. зато ненужно таскать с собой отдельный апдейтер. при желании, можно сделать нормально - но зачем? первая попавшаяся идея работает, и хер с ней
Только что идея в олову пришла, нужно будет как-нибудь попобовать реализовать. Апдейтер просто дописываем в конец Exe-шника рабочего. (круто если зархивировать) Провеили - есть апдейт. Извлекаем апдейтер, запускаем, убиваем главный процесс, качаем EXE новый, запускаем, а он при запуске убивает файл апдейтера.
мужики вроде делал всё как надо фишка он качает только свой же файл а не опдайтер а свой он скачать не может так как процесс уже занят. хз почему не качает апдейтер
апдейтер должен идти отдельной программой, которая клозает основную программу, скачивает новую копию, и обновляет данные о версии программы, для проверочной функции в основной программе. код в студию...
Господи, это же настолько элементарно как сходит в туалет облегчится, что тут сложного то? Просто нужно немного подумать, и не ленится! 1) Закачиваем на сайт файл version.txt, например url будет таким http://test.ru/version.txt, в котором будет находится номер последней версии сборки(версия сборки меняется в параметрах построения VS - "Сведения о сборке" ) 2)Закачиваем на этот же сайт последнею версию программы, например url будет http://test.ru/MySuperPuperProgramName.exe 3)Создаем приложения, которое будет загружать обновления, например Update.exe 4)В основной программе делаем код проверки - берем номер текущей сборки и сравниваем с тем что на сайте - если они разные - Application.Exit(); Process.Start("Update.exe"); 5)В Update.exe создаем темповый файл Path.GetTempFileName(); в котором и будет наша скаченная программа, с помощью например WebClient скачиваем файл, в темповый файл, вешая на DownloadFileCompleted оброботчик который - и переименует наш темповый файл в файл с именем и путем программы Все.
хм, можно добавить параметр командной строки, по которому будет переименовываться файл. т.е. в самой программе реализовать проверку и скачивание, потом запустить скачанный файл с ключем например /ren через process.start() и завершить собственный процесс. программа(скачанная), проанализировав ключ удалит старую программу, а себя переименует в ее имя.