_fpeti_ 2012.01.30. 00:52

Installer nyűgök: InnoSetup és DXSETUP nagy harca

Gondoltam nyitok a világ felé, és csinálok egy menő installer-es demót, mit csak le kell tölteni elindítani, várni míg végez, és élvezni a végtelen szórakozást. Manapság mindenki kényelemhez szokott, ha nem megy minden flottul, akkor legörbül a száj, és rajongókat veszít az ember. Ezért fontos a könnyed installáció – mondja a reklám.

Innnosetup-ot nagyon könnyű használni, szkript alapon működik, alap projektet is létre lehet hozni, be kell írni a könyvár nevét, ahol van a kész játék amit majd kitömörít a user célgépén abba a mappába (Program Files-ban valahol ált.), amibe kell. Kb. ennyi a minimum. Ez egy sor. Ez tartott órákig nekem? – nem. Hanem az, hogy a DirectX-es Visual C++ al készült cumóknak kell egy VC redist (vcredist_x86.exe) és egy DirectX-es install is. A vcredist_x86.exe-vel nincs gond, fenn van a neten, hogy kell paraméterezni, hogy silent módban – usert nem idegesítve – szépen fölinstallálja magát (nem Önt! :D). A DX-es rész kicsit bonyolultabb, ott minimum 5 file kell ahhoz, hogy egyáltalán elinduljon az install – miért is ne- plusz még a csomagok is, ezeket a dxsdk/redist mappájában találhatjuk meg. Nálam ez 11 file. Ezt szimplán úgy oldottam meg, hogy a kiadandó programban létrehoztam egy redist mappát, abba ment minden file, és miután ezeket az installer kibontotta a célgép mappájába, elindítottam a {app}/redist/ vcredist_x86.exe és a {app}\redist\DXSETUP.exe-t. Itt baj lett a dxsetup-nál, mivel azt írta ki, hogy nem találja a framedyn.dll-t. Kemény gugli-fu után olyan történt, ami még velem soha: kiderült, hogy ez nem az én hibám –ami rémisztően hatott. Kiderült, hogy a hivatalos MS álláspont szerint ez ’elszaródott Windows XP’ oprendszereken fordulhat elő, ahol megsérült, vagy törlődött ez a dll. Erre mit is mondhatnék. Meg lehet oldani, környezeti Path változóhoz a system32/wbem-et is hozzávenni, vagy csak szimplán bemásolni a dll-t a system32-be. Aztán én erre kérjek meg mindenkit, akinek előfordul?
Szerencsére kiderült, hogy e nélkül is lefut az install, valamint Vista és Win7 rendszereken nem fordul elő. Így talán nem érint majd túl sok embert, engem annyiban, hogy órákig kerestem a hibát a szkriptemben.

Az idő második része egy egyszemélyes dll-hárború vívásával telt el. Szerencsére valaki a konyhaasztalon hagyta éjszakára a mit sem sejtő win7-tel felvértezett ártatlan notebook-ját, így azon tudtam tesztelni, hogy ’meddig fagysz még’. Először hiányolt egy X3DAudio1_7.dll-t, amit nagy nehezen megtaláltam egy 2010 februári cab-ben.. Azzal azt  csinálta a progim, hogy elindult, fekete képernyő, utána kilépett. Megnéztem a log.txt-jét, kiderült, hogy elindult szépen csak az xaudio device nem jött létre, valamint egyetlen dx-es effect-file se tudott lefordítani. De nem írta ki, hogy hiányozna valami. Azért csak kerestem egy friss D3DCompiler_43_x86.cab-ot meg Xaudio, és XACT-ot is, ha már ott vagyok, sokat nem foglalnak az installerben. Ezekkel már ment szépen a cucc. Nagyjából 30-40 fps-en egy kétmagos asus gépen integrált intel cukiságos vga-val – 800x600-ban. Többre számítottam, ennyi a régi gépen is (gefGS7300)-on. Érdekes módon sokkal simábban ment a 2 magos gépen, úgy látszik van különbség ugyanolyan fps mellett itt. A lényeg, hogy megy.

Ide is másolom a InnoScript azon részeit, ami vonatkozik:

[Files]
Source: "C:\3d\release\*"; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs


[Run]
Filename: {app}\redist\vcredist_x86.exe;Parameters: "/q:a /c:""VCREDI~3.EXE /q:a /c:""""msiexec /i vcredist.msi /qn"""" """; WorkingDir: {tmp}; StatusMsg: Installing CRT...
Filename: {app}\redist\DXSETUP.exe; Flags: waituntilterminated;StatusMsg: Installing DirectX dlls...
 

Címkék:innosetup dxsetup Szólj hozzá!

A bejegyzés trackback címe:

https://sortagamedev.blog.hu/api/trackback/id/tr633972847

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.