HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Új assembly-csomag Office alkalmazásokhoz


Példaprogram letöltése

14862 bájt

A Microsoft Office XP csomag szoftvereivel való együttműködés az eddigiekhez képest még egyszerűbbé vált. Elegendő csak arra gondolnunk, hogy az alkalmazások valamelyikét Application osztályának példányosításával el tudjuk érni. A Microsoft megjelentetett egy assembly gyűjteményt Primary Interop Assemblies (PIAs) néven, mely kifejezetten arra készült, hogy még inkább lehetővé tegye COM objektumok elérését menedzselt kódból. A csomag telepítésének és használatának alapismereteit mutatjuk be cikkünkben. A mellékelt példában a Windows-os alkalmazás mellett elkészítjük annak telepítőjét is úgy, mintha a célszámítógépen már megtalálható lenne az assembly a Global Assembly Cache-ben (GAC).

A mellékelt példa használata előtt telepítenie kell a számítógépére az Office XP Primary Interop Asseblies csomagot. Ennek módjáról olvassa el a Kezdet beállítások című szakaszt a cikkben.
Kezdeti beállítások
Az Office XP Primary Interop Asseblies csomagja a cikk írásakor a http://www.microsoft.com/downloads/details.aspx?FamilyId=C41BD61E-3060-4F71-A6B4-01FEBA508E52&displaylang=en helyen volt elérhető, mely cím természetesen azóta megváltozhatott.
A letöltött állomány az oxppia.exe nevet viseli, letöltés után meg kell adnunk egy telepítési útvonalat az önkicsomagoló állománynak, amely elhelyezi a mintegy 20 darab DLL-ből és a hozzájuk tartozó regisztrációs állományokból álló kollekciót a megadott mappában.
A kicsomagolt halmazban találunk egy register.bat parancsállományt, melynek segítségével az assembly-ket el kell helyeznünk a globális assembly cache-ben (GAC). A telepítő program hiánya miatt ez manuális művelet, melyen ezzel a parancsállománnyal próbáltak segíteni a fejlesztők.
A parancsállomány a GACUTIL.EXE .NET Framework segédeszközt használja, mely automatikusan elvégzi a paraméterként kapott assembly elhelyezését.
A parancssori eszköz szintaxisa a következő:
gacutil [opciók] <assembly neve>
A register.bat állományban a két jelentős opció közül az egyiket használjuk az assembly-k telepítésére. A két kapcsoló a következő:
Opció Jellemzői
/i Installálja a paraméterként kapott assembly-t. Például gacutil /i adodb.dll.
/u Törli az assembly-t a GAC-ból. Például gacutil /u adodb.
Az assembly állományok mellett találunk egy-egy regisztrációs állományt is, mely a szükséges bejegyzéseket elhelyezi a Rendszerleíró adatbázisban. Látható hogy a REGEDIT kulcsszó után található a parancs /s opciója, mellyel arra utasítjuk a programot, hogy ne jelenítse meg a grafikus kezelőfelületet, csupán helyezze el a bejegyzéseket a megfelelő helyre.
regedit /s adodb.dll.reg
Az assembly-k elhelyezését ellenőrizhetjük is, ha megnyitjuk a <rendszer meghajtó>:\\Windows\assembly\gac mappát. Minden assembly kapott egy alkönyvtárat, benne a DLL-el.
A csomag lehetővé teszi, hogy hatékonyabban hívjunk meg nem-menedzselt COM objektumokat menedzselt kódból. Lehetővé válik, hogy a nem-menedzselt típusokhoz a menedzselt alkalmazások már szerkesztési időben hozzákötődjenek, és a CLR futtatórendszer számára információkat szolgáltassanak arról, hogyan kezelje ezeket a típusokat futási időben.
Az úgynevezett együttműködő (interop) assembly-k könnyebben kezelhetők, mivel minden egyes dinamikus könyvtár csak egy assembly-t tartalmaz.
Demonstrálandó a csomag elemeire való hivatkozást, elkészítettünk egy példa alkalmazást, és az alkalmazást telepíteni képes programot.
A mellékelt példa úgy használható, ha letöltjük a csomagot, a megadott módon telepítjük azt, majd az alkalmazást és a telepítőt lefordítjuk. A telepítő alkalmazást egy másik számítógépen elindítva, a telepített program már a csomag telepítése nélkül is használható.
Client projekt
Az alkalmazás egy Form, melyen betöltődés után látható lesz a telepített Word alkalmazás verziószáma. Az Add reference menüpont kiválasztása után a COM fül alatt megkeressük a Microsoft Word 10.0 Object Library elemet. A COM objektum bekerül a referenciák sorába. Az objektumra klikkelve megnézhetjük a tulajdonságlapját, ahol érdekes információhoz jutunk.
A csomag telepítése után a Properties ablak Path mezőjében a GAC-ban elhelyezett assembly-re kapunk egy hivatkozást, valahogy így:
C:\WINDOWS\assembly\GAC\Word\...\Microsoft.Office.Interop.Word.dll
A csomag telepítése előtt, ha a fenti referenciát adtuk a projekthez, akkor a projekt assemblyjének mappájában generálódott egy helyi másolat az Interop.Word.dll állományból, és telepítve az alkalmazást egy másik számítógépen, az alkalmazás a helyi DLL-t használta fel.
Példánkban azonban a GAC egy assemblyjére mutat a hivatkozás, tehát egy másik számítógépre telepítve a programunkat, az assemblyt ugyanitt fogja az alkalmazás keresni.
Az alkalmazás kódjában a következőképpen példányosítottuk a Word alkalmazást:
Microsoft.Office.Interop.Word._Application wa = new Microsoft.Office.Interop.Word.Application();
Egyszerűbb, ha a csomag használatakor a Microsoft.Office.Interop.Word osztályt a következőképpen adjuk meg:
using Word = Microsoft.Office.Interop.Word;
Ekkor már a hagyományos módon használhatjuk az osztályt.
Word._Application wa = new Word.Application();
CSetup projekt
A telepítő alkalmazásban néhány dolgot be kell állítani, hogy az alkalmazás máshol is megfelelően működjön. Többféleképpen telepíthetjük az alkalmazást, de annak érdekében, hogy olyan számítógépen is működjön, ahol nincs telepítve az Office XP PIAs csomag, a következőt kell tenni.
Először a Setup projekt gyorsmenüjében az Add pontra klikkelve kiválasztjuk, hogy a telepítendő alkalmazás generált kódja (output) kerüljön a telepítőhöz. Válasszuk a Project Output pontot. A megnyíló ablakot OK-val zárjuk be.
A projekt gyorsmenüjében a View pontban kiválasztjuk a File System pontot, majd a megjelenő ablak gyorsmenüjében az Add Special Folder pontot. Hozzáadjuk a GAC mappáját a Global Assembly Cache Folder kiválasztásával.
Kiválasztjuk a Microsoft.Office.Interop.Word.dll assembly-t, majd a Tulajdonság lapján a Folder mező melletti gombra kattintva kiválasztjuk, hogy az imént létrehozott GAC-mappába kerüljön, és ne az alkalmazás mappájába. Ezzel elérhető, hogy a célszámítógép nem kell, hogy telepítse a PIA csomagot. Sőt, így elkerülhető, hogy egy assembly több példányban is jelen legyen.
Következő lépés, hogy a View menüpontban Registry alpontot kiválasztjuk, és a megjelenő ablakban is meghívjuk a gyorsmenüt, mely egyetlen, Import feliratú ponttal rendelkezik. Megkeressük az assembly-hez tartozó .reg állományt, majd a projekthez adjuk.
Végül a telepít projektbe alapértelmezett módon bekerült MSWORD.OLB, Office.dll és stdole.dll assembly-ket el kell távolítani onnan. A gyorsmenüjükben válasszuk az Exclude pontot.
A projekt gyorsmenüjében az Install pontot választva indulhat a telepítés folyamata.

Cikksorozat

#IDKategóriaCikk címeSorozat
3643DelphiFormEditor1. rész
3689DelphiProject és modul információk2. rész
3719DelphiMegnyitás, mentés3. rész
3749DelphiKódszerkesztő4. rész
3778DelphiForráskód írása, olvasása5. rész
3809DelphiInterfész a kódszerkesztő ablakhoz6. rész
3839DelphiKijelölt blokkok7. rész
3869DelphiA buffer beállításai8. rész
3899DelphiKörnyezeti és Project opciók9. rész
3929DelphiKurzor a kódszerkesztőben10. rész
3959DelphiKeresés és csere beállításai11. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2003 évkönyv 361. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |