Jednoduchý updater v C# .NET

C# .NET Windows Forms Zdrojákoviště Jednoduchý updater v C# .NET

Díky tomuto updateru můžete kdykoliv aktualizovat vaši aplikaci (jen pro C#), kterou jste vypustili do světa.

Updater je velmi jednoduchý a přidat k aplikaci ho zvládne i začátečník.

Návod:

  1. V hlavním programu musíme zjistit aktuální umístění souboru. K tomu postačí tenhle řádek kódu.
string filename = System.Reflection.Assembly.GetExecutingAssembly().Location; // zjištění  umístění souboru
  1. Do hlavního programu vložíme funkci pro kontrolu aktualizací. Pro fungování, je nutné na web nahrát .txt soubor, kde bude na prvním řádku verze souboru a na druhém odkaz na aplikaci na webu. (při vydání nové verze programu nutno změnit na verzi nového programu). Např: http://florbal-info.sweb.cz/test.txt

Verze programu ve Visual studiu se dá změnit v Properties -> AssemblyInfo.cs

Příklad souboru txt:

3.0
www.mujweb.cz/mojeapp/download/MujSoubor.exe

A C# kódu:

private void CheckForUpdates()
{
        double aktualniVerze = double.Parse(Assembly.GetExecutingAssembly().GetName().Version.ToString(2), CultureInfo.InvariantCulture); // zjistí aktuální verzi programu

        WebRequest request = WebRequest.Create("http://florbal-info.sweb.cz/test.txt");
        WebResponse response = request.GetResponse();
        StreamReader reader = new StreamReader(response.GetResponseStream());

        double novaVerze = double.Parse(reader.ReadLine(), CultureInfo.InvariantCulture);
        //první řádek ze stránky

        if (novaVerze > aktualniVerze)
        {
                if (MessageBox.Show("Je dostupná nová verze pogramu! \nPřejete si stáhnout novou verzi?", "Nová verze", MessageBoxButtons.YesNo, MessageBoxIcon.Information) ==  string Adresa = reader.ReadLine();//second line is link
            if (NewestVersion > CurrentVersion)
            {
                if (MessageBox.Show("Je dostupná nová verze pogramu! \nPřejete si stáhnout novou verzi?", "Nová verze", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == System.Windows.Forms.DialogResult.Yes)
                {

                    Process.Start(@"Vaše cesta k updateru",filename+"+"+Adresa);

                    Application.Exit();
  (
}
}
  1. Aktuální verzi programu nahrát na internet.

To by mělo být asi vše. Budu vděčný za názory a připomínky.

EDIT: Aplikace byla upravena tak, aby stačilo vytvořit .txt soubor a nahrát ho na web. Nemusíte se nijak zasahovat do zdrojových kódů updateru.


Galerie

Program byl vytvořen v roce 2014.

 

Stáhnout

Staženo 177x (262.03 kB)
Aplikace je včetně zdrojových kódů v jazyce C#

 

  Aktivity (1)

Program pro vás napsal Matyáš Černohous (Matesak)
Avatar
Autor se věnuje vývoji C# aplikacím. Poslední dobou jsem se z dekstopu přeorientoval na tvorbu aplikací pro Windows Phone. V hlavě mám spousty nápadů, ale bohužel se teď musím učit na maturitu... https://www.windowsphone.com/cs-CZ/store/publishers?publi

Jak se ti líbí článek?
Celkem (2 hlasů) :
4.54.54.54.54.5


 



 

 

Komentáře

Avatar
Fisty256
Člen
Avatar
Fisty256:

Veľmi dobrá aplikácia. I keď na Devbooku som niekde niečo podobné videl len tam trošku inak fungoval spôsob zisťovania aktuálnej verzii (z toho .txt súboru). Inak source som nevidel tak porovnať neviem.

 
Odpovědět 11.2.2014 18:38
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovědět 11.2.2014 18:43
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
m4r10
Redaktor
Avatar
m4r10:

Muzes pouzit tridu Version misto double. Nebudes omezen pouze na major a minor.
Snaz se dodrzovat open-closed principle, tak aby ten kdo bude pouzivat tvoji knihovnu nemusel menit kod. Melo by stacit pouze zmenit konfiguraci.

Neboj se tento program rozsirit a udelat z toho univerzalnejsi reseni.

 
Odpovědět 20.2.2014 20:54
Avatar
Odpovídá na m4r10
Matyáš Černohous (Matesak):

Díky za připomínky. Říkal jsem si, že to ani není moc vhodné, aby každý mohl zasahovat do zdrojáků. Právě jsme se na to koukl a poupravil to tak, aby se všechno načítalo z toho txt souboru.

 
Odpovědět 26.2.2014 22:33
Avatar
Lukáš Tesař:

Moc to nechápu. Mělo to být i pro začátečníky, ne? Který soubor updateru mám nastavit na Process.Start? Přepíše se soubor tohoto programu? A proč je tam kromě

if(novaVerze > aktualniVerze)

taky

if (NewestVersion > CurrentVersion)

?

 
Odpovědět 30.7.2014 20:10
Avatar
Odpovídá na Lukáš Tesař
Matyáš Černohous (Matesak):

Ahoj, momentálně nejsem u pc, lae jak přijedu, tak na to hned kounu. U toho If mám chybu - je tam zbytečně :)

 
Odpovědět 5.8.2014 21:27
Avatar
Člen
Člen
Avatar
Člen:

Pekna aplikacia :)

Odpovědět 15.9.2014 13:57
...
Avatar
O.Fo
Člen
Avatar
O.Fo:

Nevím jak u vás ale u mě Process.Start() spouští webovej prohlížeč.
Pokuď to máte taky jako já tak tu mám jednoduché řešení:
Dejte si na Form WebBrowser a u něj nastavte:

Visible = False, ScriptErrorsSuppressed = True

Pak když chcete začít stahovat tak stačí spustit kód:

webBrowser1.navigate("http://www.vase_stranka.cz/aplikace.exe");
 
Odpovědět 12. července 8:02
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.