Installer: custom action futtatása

Installer: custom action futtatása
2008-11-03T15:10:25+01:00
2008-11-04T13:35:44+01:00
2022-11-11T11:41:56+01:00
sheepee
Hello Mindenki!

A következő probléma miatt túrom már egy hete a netet, talán itt már szaladt valaki hasonló problémába (mert nagyon egyszerű igényről van szó)

Visual Studio-val készítenék windows installer package-t. Mivel a program, amihez készül egy újabb verziója egy korábbi alkalmazásnak, mindenképp szükséges lenne a korábbi verzió mappájából backup-olni néhány filet.
Azt hittem, hogy erre való az installer OnBeforeInstall metódusának override-olása, de sajnos kiderült, hogy a windows installer előbb másolja az újfileokat (uninstall régi verzió) és csak utána következik a fentebb említett metódus (számomra érthetetlen módon)
Próbáltam az ORCA nevű windwos eszközzel szerkeszteni a sequence number-eket, de hiába.
Már az is megoldás lenne, ha írnék rá egy kis konzol alkalmazást ami elvégzi a backupot, viszont ezt is korábban kéne meghívni mint a korábbi verzió uninstallját.
(ja a RemovePreviousVersion mindenképp true, mert a program teljesen átalakult, le kell zúzni az előzőt)

Előre is köszi az ötleteket!

Üdv,
Attila
Mutasd a teljes hozzászólást!
Köszi!
Én már nagyon sok időt töltöttem keresgéléssel, szóval egyszerűen áthidaltam a problémát: csináltam egy pici konzolos alkalmazást, ami elvégzi a bakcupolást (user config file-ok), aztán elindítja az installt, majd az installer befejeződése után helyreállítja a config fileokat.
Nem értem, miért kell ezt ilyen nyakatekert módon megoldani, a fentebb javasolt Inno-ban gond nélkül lehet használni beforeinstall-t (csak az meg sajnos olyanokat nem tud, ami nekem kéne... /pl iis állítgatás/)
Mutasd a teljes hozzászólást!

  • Ezt olvastad?
    Using Custom Actions (Windows)

    Valahol találtam egy videót is erről, azt is megpróbálom megkeresni.
    Mutasd a teljes hozzászólást!
  • Meg is van. Ez a videó ugyan nem erre van kihegyezve, de bemutatják benne a custom action-ök létrehozását is.
    http://download.microsoft.com/download/4/a/5/4a5856fc-f28b-4ecf-ad98..
    Mutasd a teljes hozzászólást!
  • Helló!

    Lehet hogy nem értem, hogy pontosan mit is akarsz, de ez nem segít?

    Inno Setup Compiler

    Nagyon jó cucc, amúgy.

    üdv
    noob
    Mutasd a teljes hozzászólást!
  • Hix: köszi a gyors választ!
    Az a baj, hogy a microsoft hivatalosan "not support" (ők írták) a saját install process-ei előtt futtatást, szóval csak valami "hekkeléssel" működhet a dolog (úgyértem az msi adatbázisában a táblák megfelelő szerkesztésével) De a videot mindenképp megnézem holnap!
    Mutasd a teljes hozzászólást!
  • noob: köszi az ötletet! Máshol is javasolták már ezt a programot, csak eddig nem néztem rá, mert azt hittem, hogy fizetős a dolog. De látom tök ingyenes (sőt a commerical felhasználás is - ami nekem kell), szóval holnap itt folytatom a kutakodást.
    Mégegyszer köszi!
    Mutasd a teljes hozzászólást!
  • Az a baj, hogy a microsoft hivatalosan "not support" (ők írták) a saját install process-ei előtt futtatást


    Ezt nem tudom honnan vetted, de nem hiszem, hogy tréning videóban benne lenne, meg egész szép dokumentációja lenne a dolognak (ügye megnézted a linket, amit küldtem?), ha ez nem támogatott dolog lenne. És szó sincs msi-ben turkálásról. Az Inno Setup nem rossz egyébként, de azért a Windows Installernek szerintem nem nagyon ér a közelébe (pl.: ClickOnce, meg ilyenek).
    Mutasd a teljes hozzászólást!
  • A videoban nincs benne, máshol láttam. Viszont a videoban egy szó sincs arról, hogy a fileok másolása előtt (tehát a default install process előtt) én ténykedhessek. (elmentsek egy backup mappába pár file-t)

    Szóval a célom: indul az install, és mielőtt felmásolja a filoket szeretnék kidobni egy message boxot (igazából backup-olni, de mind1)
    Egyébként azért nem lehet ilyet - mint kiderült - mert az installernek először fel kell másolnia a targetdir-be a customaction-t tartalmazó dll-t, és csak azután tudja mehívni.
    (Ha beleszerkesztünk az msi-be, elérhetjük, hogy a tempbe kerüljön ez a dll, közvetlenül indítás után, na és akkor lehetne tényleg csinálni valamit a file-ok másolása előtt. Sajnos az msi corrupted lesz ha belenyúlok - biztos meg lehet csinálni, de nemtom hogyan)
    Mutasd a teljes hozzászólást!
  • Így már értem a problémádat. Ránézek, hátha ki lehet találni valamit :)
    Mutasd a teljes hozzászólást!
  • Köszi!
    Én már nagyon sok időt töltöttem keresgéléssel, szóval egyszerűen áthidaltam a problémát: csináltam egy pici konzolos alkalmazást, ami elvégzi a bakcupolást (user config file-ok), aztán elindítja az installt, majd az installer befejeződése után helyreállítja a config fileokat.
    Nem értem, miért kell ezt ilyen nyakatekert módon megoldani, a fentebb javasolt Inno-ban gond nélkül lehet használni beforeinstall-t (csak az meg sajnos olyanokat nem tud, ami nekem kéne... /pl iis állítgatás/)
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd