C# auto update

0

Witam.

Poszukuję jakiegoś poradnik jak zrobić autoupdater w c#. Wszystko co znalazłem dotyczyło vb. Może być po angielsku, ale musi być szkielet/zarys kodu. (wiem na jakiej zasadzie ma to działać, ale nie umiem zastosować.)

somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:5 dni
  • Lokalizacja:Wrocław
0

A nie wystarczy ClickOnce?

mr_jaro
  • Rejestracja:prawie 14 lat
  • Ostatnio:ponad 3 lata
  • Lokalizacja:Grudziądz/Bydgoszcz
  • Postów:5300
0

Ja napisałem to dość prosto. Mam na serwerze plik tekstowy gdzie siedzi nr aktualnej wersji oraz plik update.exe będący prostym programem mającym w zasobach wszystkie pliki aktualnej wersji programu.

  1. Uruchamia program na komputerze, ten sprawdza czy jest aktualną wersją.
  2. Jeśli nie jest aktualny to pobiera plik update.exe z serwera i go uruchamia.
  3. Update. exe wyłącza nasz program.
  4. Po upewnieniu się, że na 100% aplikacja jest wyłączona update.exe wypakowuje z siebie aktualne wersje plików i zamienia z tymi istniejącymi.
  5. Update.exe uruchamia nową wersję programu i się wyłącza.
  6. Uruchomiona nowa wersja programu usuwa z komputera plik update.exe.

It's All About the Game.
edytowany 1x, ostatnio: mr_jaro
Zobacz pozostałe 2 komentarze
katelx
opowiadasz, zawsze mozna z pendrive :)
mr_jaro
@katelx dystrybucja oprogramowania i ich updaty dla powiedzmy kilkudziesięciu/kilkuset ludzi z pendriva?
katelx
@mr_jaro hmm, myslalam ze sobie zartujemy no ale skoro nie - zarowno pendrive jak i wynajdywanie kola na nowo co sugerujesz w poscie nie sa najlepszymi rozwiazaniami
mr_jaro
@katelx zgadzam się ale są koła, które mi nie pasują dlatego czasem wolę napisać coś samemu, co będzie w 100% dostosowane do tego co chcę mieć i do czego to ma być. Jezeli każdy by korzystał tylko z gotowych "kół" to rozwój by się zatrzymał :)
katelx
@mr_jaro tak jak pisalam wyzej tez sie pokusilam o napisanie wlasnego updatera, czy byla to dobra decyzja nalezaloby spytac kolegow ktorym to zostawilam do supportu, ja z pewnoscia dobrze sie bawilam :)
0

Też to sobie podobnie rozplanowałem.

Zrobiłem takie coś:

Kopiuj

             int wersja = 1;
             WebClient update = new WebClient();
            string newver = update.DownloadString("");
            int wer = int.Parse(newver);

             

            if (wersja < wer)
           {
            DialogResult dialogResult = MessageBox.Show("Aktualizacja dostępna. Pobrać?", "", MessageBoxButtons.YesNo);
               if (dialogResult == DialogResult.Yes)
               {
                      WebClient pobieranie = new WebClient();
                   pobieranie.DownloadFile("", "Nazwa");
                   
                       
                   
               }
               else if (dialogResult == DialogResult.No)
               {
                  
               }

Mniej więcej takie coś? Będzie pobierać txt i jeśli w nim będzie np. 2 rozpocznie pobieranie nowego programu. Tylko nie wiem jak zrobić że kiedy się pobierze to podmienia pliki i zamykanie aplikacji. Chciałbym żeby był widoczny tylko msgbox z statusem(czyli trzeba ukryć forme?).
Dodam że będzie to podpięte pod buttona.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.