Megfelelő végrehajtása korszerűsítési program - verem túlcsordulás az orosz

Nincs olyan kérdésekben, mint a végrehajtása automatikus frissítési programot. Az elv: a felhasználó lefuttatja a programot, a program működik, stb - ha a változata a program, például 1,0. és már 1.1. A program letölti az új verziót, és újraindítja a programot, így a friss programot.

Amint azt gondolom: A kiszolgáló version.txt fájlt (azt hiszem, lehet, XML, és bár nehéz lesz kezelni). Programunk amikor elindul, akkor ellenőrzi a verzió. Fájl olvasása version.txt útján c ++ (ha lehetséges, anélkül, hogy a fájl letöltése), és hasonlítsa össze a jelenlegi verzió (közös változó). Ha a változatok azonosak, de tovább dolgozunk a program. Ellenkező esetben - és sok lehetőséget kínálunk, hogy letölthető, tehet. Megpróbálok erőt terhelés, azaz a szükségszerűen a régi program nem fog működni. Töltse le a legújabb verzióját a programot, és indítsa újra.

Javasolj a lehetőségeket. Talán az én algoritmus, vannak hátrányai. Mondd, hogy a legjobb az Ön.

Ui Csak érdekel az algoritmus, a megoldás és ajánlat alapok tetszés szerint.

Nem állítom, hogy a helyes döntés csak mondani, hogy kell ezt csinálni velem. Amikor a program indítása minden 4 nap (általában nincs értelme, nem mentesít új verzió, így gyakran) a háttérben szál fut a frissítés ellenőrzés (a felhasználó manuálisan elindítani).

A szerveren azok, amit találtam.

A program utal, hogy a szerver a speciális szkript, az ő verziója, a nevét viselő (Van több olyan összetevőt, amelyek frissítik külön-külön), és a szkript visszatér a helyes XML. Timestamp összehasonlítva a helyi változata a fájl, és a program megmutatja a felhasználó kéri, hogy frissítse a leírást változások az új verzió.

Ha a felhasználó elfogadja, akkor a program újraindítja magát a jogokat a rendszergazda, és letölti a fájlt a megadott downloadURL. Ellenőrzi md5 hash-t a zip fájlt, majd csomagoljuk ki az archívumot egy ideiglenes mappába. Belül az archívumban van egy másik xml fájlt, ahol jeleztük, hogy mely mappákat szétszórják fájlokat. Mielőtt felülírása exe és dll fájlokat átnevezi * .old. Ezután a program elindít egy új verzió egy speciális kulcs, hogy képes bármit is tenni több akciót (általában nem kell kézbesíteni).

Egyes elemek (nem tartalmaz exe fájl) csendben frissítette nélkül a felhasználó tudta.

Az én megközelítés vannak hibái, amikor eltávolítja a telepítő (Inno Setup), új telepített fájlok segítségével az automatikus frissítés nem törlődnek.

Bár valószínűleg frissíteni exe helyes volt letölteni a telepítőt, és helyezze be egy csendes módján, de nem vagyok túl lusta, hogy újra. Szeretem csinálni egy frissítést a böngésző (Google Chrome, stb), a program maga frissül, és a felhasználó észre sem veszi. De a kedvéért a program telepítve van a felhasználó saját mappájában, nem a Program Files. És ha nem tévedek, a Google inkrementális frissítés azaz ahelyett, hogy a bináris hatalmas 100 MB letöltött kis diff.

De feladni a beépített frissítési rendszer, azt nem látja értelmét, a programot (Image Uploader) kell gyakran frissítik támogatását otthont, amely gyakran változik, ez egy alapvető szükségszerűség. Frissítés tárhely súlya hozzávetőleg 50 kb, és a program 5 MB.

Ui A felhasználók nem használható régebbi verziói a program - ez butaság. Megpróbálom fenn visszafelé kompatibilitást a régebbi verziók ésszerű határt.

Kapcsolódó cikkek