IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Automatická kontrola aktualizací programu v C#

Pokud máte vlastní program a řešíte problém s aktualizacemi - jak upozornit uživatele na novou verzi programu - Čtěte dál a dozvíte se jak na to.

Jasně, můžete si nastavit napevno datum a pak být nuceni do onoho soudného dne vydat novou verzi, ale je tu i snazší způsob -> zautomatizování.

Nejdříve si načteme aktuální verzi (informace z Assembly -> Version)

Assembly.GetE­xecutingAssem­bly().GetName()­.Version -> tímto dostaneme něco takového 1.0.0.0 -> formát Major, Minor, Build, Revision, ale my bychom raději něco takového -> 1.0 Usekneme zbytek pomocí ToString(2)

Celý kód poté bude vypadat takto:
Pozn.: CultureInfo udává informaci o decimálním separátoru (prostě čárce) jestli bude "." nebo "," InvariantCulture je standard -> "." jinak je v základě podle systémového nastavení (v češtině) ","

using System.Reflection;//pro používání informací z assemblyinfo
using System.Globalization;//pro culture info

double CurrentVersion = double.Parse(Assembly.GetExecutingAssembly().GetName().Version.ToString(2), CultureInfo.InvariantCulture);

 

Pak si naparsujeme soubor, ve kterém budou dva řádky -> 1-> verze; 2-> link (pro přesměrování na soubor)

using System.Net;//pro načtení obsahu souboru z internetu
using System.IO;//pro stream reader

WebRequest request = WebRequest.Create("http://www.itnetwork.cz/scripts/programs_version.php?uniqid=xxxxx");
WebResponse response = request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());

 

Php soubor vypadá takto:
Pozn.: stačí uložit textový soubor o dvou řádcích php použijte pokud tyto informace ukládáte do databáze

<?php
require_once('mysql.php');
$query = mysql_query('SELECT name, version FROM table WHERE application = "ClockWork" LIMIT 1') or die(mysql_error());
$data = mysql_fetch_assoc($query);

echo(
    $data['version'] . "\nhttp://www.itnetwork.cz/" . $data['name']
);
?>

 

Naparsujeme si ony dva řádky.

using System.Globalization;//pro cultureinfo

double NewestVersion = double.Parse(reader.ReadLine(), CultureInfo.InvariantCulture);//první řádka je verze
string Link = reader.ReadLine();//druhá řádka je link

 

A hodíme tam jednoduchou dotazovací podmínku.

using System.Diagnostics;//pro process.start

if (NewestVersion > CurrentVersion)
{
    if (MessageBox.Show("Ke stažení je dostupná nová verze programu! ("+ NewestVersion.ToString() +")\nPřejete si ji stáhnout?", "Je dostupná aktualizace", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes)
        Process.Start(Link);
}
else
    MessageBox.Show("Používáte poslední verzi!", "Aktualizace nenalezena");

 

Ke stažení přikládám zdrojový kód ukázky se zkompilovaným výsledkem.

Jste redaktorem na ITnetwork?

Pak můžete využít následujícího odkazu:

http://www.itnetwork.cz/smallapps/programs_version.php?uniqid=

Kde za rovná se dosadíte uniqid vašeho programu/hry, který naleznete v administrační sekci v editaci článku hned na začátku.
Výstupem je verze software, tak jak je ukázána v článku -> verze\nodkaz


 

Stáhnout

Stažením následujícího souboru souhlasíš s licenčními podmínkami

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

 

Všechny články v sekci
Zdrojákoviště C# .NET - Práce se soubory
Článek pro vás napsal David Jančík
Avatar
Uživatelské hodnocení:
3 hlasů
Autor je vášnivý programátor. Nezná slovo "nelze", nebojí se zkoušet nepoznané a pronikat do nových technologií.
Aktivity