Dziękuje Baronie za odpowiedz. Przyznam że myślałem nad takim rozwiązaniem. Problem pojawia się następujący tyczący się chyba wszystkich moich pomysłów. O ile nie ma problemów z aktualizowaniem aplikacji na bieżąco czyli z wersji na wersję to problem pojawia się jeśli trzeba zaktualizować powiedzmy z wersji 1 do wersji 10. Rożnice zachodzić mogą wtedy już nie tylko na samych plikach ale strukturze katalogów, wymianie bibliotek na inne, czy też dodanie nowych. Dlatego aplikacja aktualizująca powinna działać jak takie małe repozytorium. Przedstawię jak to działa w tej chwili.
1. Po kliknięciu w aplikacji macierzystej
Narzędzia
Aktualizacja, uruchamia się zewnętrzny program aktualizujący.
2. Podczas uruchamiania tego programu pobiera on z rejestru systemu aktualnie zainstalowanÄ… wersje.
3. Po przyciśnięciu przycisku sprawdź dostępność aktualizacji program pobiera plik z serwera zawierający informacje o dostępnej wersji na serwerze.
4. Jeśli numer aplikacji jest równy wyświetlany jest komunikat o braku aktualizacji do pobrania. Jeśli zaś większy wtedy wyświetlane jest pytanie czy pobrać informacje dotyczące nowej wersji.
5. Program pobiera informacje dotyczące nowej wersji (opis zmian w stosunku do poprzedniej, listę plików do zaktualizowania)
6. Po kliknięciu przycisku aktualizuj, program prosi o zamknięcie aplikacji bazowej i dokonuje pobrania oraz instalacji poszczególnych plików.
Tak jak już mówiłem rozważałem wiele wersji aktualizacji:
1. Odinstalowanie poprzedniej wersji w całości i instalacja nowej.
2. Cała aplikacja podzielona jest na moduły i każdy moduł z osobna jest sprawdzany, usuwany oraz instalowany.
3. Oraz sprawdzanie różnic wersji i pobieranie tylko plików które uległy zmianie.
Jednak chciałbym pozostać przy aktualizacji pojedynczych plików. Zastanawiam się co zlecić serwerowi a co aplikacji sprawdzającej, i w jaki sposób trzymać pliki na serwerze.