Witam ;)
Jaki jest dobry sposób na sprawdzenie czy jest aktualizacja. Piszę własny aktualizator i potrzebuje pewnego nakierowania.
Myślałem o jakimś pliku informacyjny, który byłby zawsze pobierany i porównywany z poprzednim. Myślałem też o sprawdzaniu daty na serwerze i porównania jej z datą pliku .exe.
W większości przypadków aplikację publikuje poprzez Release, nie robie żadnych paczek czy publish typu OneClick więc wersja pliku odpada, chyba, że da się to jakoś załatwić.
Jak to robicie?
Możesz też porównywać informacje o wersji, które masz zapisane w swoim Assembly (czyli zmieniają ci się w AssemblyInfo.cs) poprzez Assembly.GetEntryAssembly().GetName().Version
, przesyłać to do serwera i sprawdzać na serwerze, czy aktualna wersja jest nowsza (wyższa).
Ja w obecnie pisanej appce zrobiłem coś takiego, że ona się przedstawia serwerowi swoją wersją (np. 0.8.2), serwer trzyma historię wszystkich opublikowanych wersji, wybiera najnowszą i sprawdza, czy jest ona wyższa od wersji zgłoszonej przez aplikację - jeśli tak, aplikacja jest powiadamiana, że dostępna jest aktualizacja. Porównywanie wersji robię dzięki semver, bo i wersje numeruję zgodnie z semantic versioning.
Jeżeli chodzi ci o cały mechanizm aktualizacji, obejrzyj Squirrel.Windows.
Chciałem zrobić coś swojego ale widzę, że "wiewiórka" wystarczy. Lubię jak ktoś droczy się z Microsoftem - It's like ClickOnce but Works™