ClickOnce: jednoduchá inštalácia a aktualizácia vašich aplikácií
Ak vyvíjate aplikácie pre platformu Windows, určite ste už boli postavený pred otázku distribúcie a aktualizácie vašich aplikácií. Možnosti je viacero, asi najpoužívanejšou je využitie Windows Installer a vytvorenie inštalátora, toto riešenie však nerieši automatickú aktualizáciu vašej aplikácie.
ClickOnce je ideálne riešenie, ak vyvíjate aplikácie na platforme Microsoft .NET. Vytvorenie inštalátora ClickOnce je veľmi jednoduché. V nastavení projektu v sekcii Publish vyplníte požadované údaje ako názov aplikácie, autor a pod. a zvolíte, či má aplikácia kontrolovať aktualizácie pri každom spustení (používateľ tak bude mať vždy aktuálnu verziu aplikácie), alebo v nejakom časovom intervale. Aktualizáciu môžete nechať aj úplne na používateľovi a vyvolať ju programovo:
ApplicationDeployment updater = ApplicationDeployment.CurrentDeployment;
bool verDepServer = updater.CheckForUpdate();
if (verDepServer)
{
DialogResult res = MessageBox.Show(Resources.NewVersionAvailable, Resources.Updater, MessageBoxButtons.YesNo);
if (res == DialogResult.Yes)
{
updater.Update();
MessageBox.Show(Resources.RestartMsg);
}
}
else
{
MessageBox.Show(Resources.NewVersionNotAvailable, Resources.Updater);
}
Môžete si určiť závislosti, ktoré vaša aplikácia vyžaduje a budú s ňou automaticky nainštalované (konkrétna verzia .NET a pod.) ClickOnce inštalátor ďalej dokáže vytvoriť zástupcu aplikácie na ploche počas inštalácie, tým však jeho možnosti končia. Ak potrebujete počas inštalácie zapisovať do registrov alebo vykonávať nejaké diskové operácie, ClickOnce nie je pre vás.
Vytvorenie samotného ClickOnce inštalátora je veľmi jednoduché pomocou voľby Publish vo Visual Studiu. Pri online inštalátore (inštalácia zo siete alebo internetu) je potrebné určiť adresu, z ktorej bude aplikácia inštalovaná, aby bola možná kontrola aktualizácií, pri offline inštalátore (inštalácia z lokálneho disku, DVD) to potrebné nie je.
Ak chcete vidieť CliclOnce inštalátor v praxi, skúste napríklad aplikáciu AutoSensitivity.