Chci se zeptat jak by jste řešili následující ? Dopředu informuji, že jsem prohledal fórum ale nedostal jsem odpověď. Vytvořil jsem aplikaci která bude "běhat" v naší doméně. Instalaci si vytvořím v Inno setup a protože nechci instalovat program pro každého uživatele zvlášť nebudu používat ve VB.net integrovaný Publish. Ten po mých testech instaluje program do dokumentů, aby obešel ochranu oprávnění. Jenže tím pádem nutí instalovat aplikaci pro každého uživatele zvlášť, což je krajně pracné a nepraktické. Nenašel jsem nikde jak instalovat pro all users. Našel jsem někde i nějaké části kódu, jak používat click once programově, ale určení cíle nikde. Navíc aktualizace tam fungují-nefungují. Tu se aplikace zaktualizuje, tu si vytvoří sekundarní instalaci a očísluje jí na "-1" :-) Asi VB bere verzi novou verzi programu jako nový program. Update pak zjišťuje podle Publish verze ale já potřebuji zase vědět kdo má jakou verzi programu,jedině snad si tvořit vlastní verzi někde v textboxu :-) Je sice dobrý, že si dokáže zjistit chybějící framework ale bez administrátorského oprávnění si stejně neškrtne. Takže to si stejně budu muset na všech stanicích doinstalovat takřka "ručně". Pokud mi to tady někdo nevyvrátí, tak je pro mě a asi i pro ostatní Publish nepoužitelný. Proto se dám cestou Inno setup a mnou řízeného update. A nyní mé otázky. Jak zjistím verzi "cizího" programu, abych si ověřil nutnost aktualizace ? Je nutné na spuštění update použít externí prográmek, nebo se dá v aplikaci updatovat sám sebe ? Jde o to, že v okamžiku kopírování aktuálního .exe souboru je asi potřebné vypnout sám sebe, ale tím asi jistě ztratím kontrolu ? Nebo se to dá nějak inteligentě obejít a dokončit část kódu při restartu aplikace ? Asi ne , ale co kdyby :-) Předem díky i za nakopnutí správným směrem nebo případně za komentované vyvracení mých závěrů při zkoumání Publishingu.
|