HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Egyedi értékek beállítása telepítőben


Példaprogram letöltése

26910 bájt

A Visual Studio.NET segítségével minden alkalmazástípushoz elkészíthetjük a megfelelő telepítőprogramot is. A telepítőprogramokkal azonban alapértelmezésben csak a program telepítésének helyét állíthatjuk be. Cikkünkben bemutatjuk, hogyan egészíthetjük ki a programjainkat úgy, hogy a telepítés folyamán egyéb információkat is bekérhessen a felhasználótól.

A program fordítása után futtassa a telepítőprogramot (WinSetup.msi), hogy a program a helyes adattal rendelkező konfigurációs állományt érje el. Csak ezt követően futtassa a WinSample alkalmazást.
A mellékelt példa egy Windows-os alkalmazást (WinSample projekt), és ehhez egy telepítőprogramot tartalmaz (WinSetup projekt). A Windows-os alkalmazás induláskor egy – a programhoz létrehozott, ám helyes értékkel a telepítéskor feltöltött – WinSample.exe.config nevű konfigurációs állományból beolvassa a mappában található egyik XML állomány nevét, majd betölti az állomány tartalmát egy DataSet objektumba. Az objektum tartalmát pedig a DataGrid kontrolban megjeleníti.
A telepítőprogramban egy űrlapon bekérjük az állománynevet, melyet elhelyezünk a konfigurációs állományban. A betölthető XML állományok, a konfigurációs állomány, valamint a futtatható fájl a telepítéskor megadott, alapértelmezésben a <winroot>:\\Program Files\SoftwareOnline\WinSample mappába kerülnek.
Dinamikus tulajdonság
A művelet első részében a Form-ra helyezett TextBox kontrol Text property-jét dinamikus property-vé alakítjuk. Ezt úgy érjük el, hogy a kontrol Tulajdonság lapján a DinamicProperties csomópontban, az Advanced elem melletti gombra kattintunk. A megjelenő panelen a Text jelölőnégyzetet kijelöljük, és a dinamikus tulajdonság nevét FileName-ként adjuk meg. A létrejövő konfigurációs állományban az <appSettings> bejegyzésben fog megjelenni.


<?xml version="1.0" encoding="windows-1250"?>
<configuration>
  <appSettings>
    <add key="FileName" value="" />
  </appSettings>
</configuration>
Installáló osztály létrehozása
Következő lépésben létrehozunk egy osztályt, mely a System.Configuration.Install.Installer osztályból származik. Az osztályban felülírjuk az Install metódust, hogy a telepítés folyamán bekért információt elhelyezhessük a konfigurációs állományban. A metódusban először meghívjuk az ősosztály metódusát.
public override void Install(IDictionary stateSaver)
{
  base.Install(stateSaver);
A megadott információt a Context property-ből olvassuk ki, mely egy InstallContext objektum.
  string fileName = this.Context.Parameters["FileName"];
  if (fileName == "") throw (new InstallException("Nem adott meg argumentumot!"));
A konfigurációs állományt beolvassuk egy DataSet-be, megváltoztatjuk a VALUE attribútum értékét a megadott fájlnévre, majd kiírjuk az információt az állományba.
  Assembly asm = Assembly.GetExecutingAssembly();
  FileInfo fi = new FileInfo(asm.Location + ".config");
  ...
  DataSet ds = new DataSet();
  ds.ReadXml(fi.FullName);
  ds.Tables[1].Rows[0][1] = fileName;
  ds.WriteXml(fi.FullName);
}
Felhasználói „akció” megadása a telepítőben
Annak érdekében, hogy a telepítőben meg tudjuk adni a felhasználói információt, el kell végeznünk bizonyos beállításokat.
Elsőként a telepítő projektjén kell kattintanunk egyet a jobb egérgombbal, majd a menüből ki kell választanunk az Add menüpontot, azon belül a Product Output alpontot. Ekkor megadjuk a telepítendő állományok körét, mely a WinSample.exe futtatható állomány, és a WinSample.exe.config konfigurációs állomány lesz.


A következő lépésben meg kell adni, hogy még milyen állományok kerüljenek telepítésre. Ekkor az Add – File pontot választva kikeressük a két XML állomány nevét a könyvtárból.
A projekt gyorsmenüjéből a View - Custom Action menüpontot kiválasztva adhatunk egy egyéni műveletet a telepítőhöz. A feltáruló Custom Action (WinSetup) panelen látható négy művelet (Install, Commit, Rollback, Uninstall), melyek mindegyikén kell egyet kattintanunk, hogy megjelenjen az Add cutom action menüpont.


A panelen az Add output gombra kell kattintanunk, hogy minden művelet alá bekerüljön egy saját akció.


Minden egyéni akció Tulajdonság lapján a CustomActionData property értékét a következőre kell állítani: /FileName=[EDITA1]. Ez azt jelenti, hogy a felhasználói panelen az EditA1 TextBox kontrol Text property-jének az értéke rendelődik a FileName dinamikus tulajdonsághoz, és íródik végeredményben a konfigurációs állományba.


Kiegészítő dialógus ablak hozzáadása
A telepítőprogram testre szabásában utolsó lépés, hogy egy adatbekérő ablakot is illesszünk a varázsló ablakainak sorába, rögtön az üdvözlő Form után. Ehhez a project menüjében válasszuk a View – User Interface menüpontot. A megjelenő panelen a fa-struktúra Install csomópontjában három alpont látható: Start, Progress, End. A Start pont gyorsmenüjéből válasszuk az Add Dialog pontot.
Ekkor megjelenik egy űrlap, melyből ki kell választanunk a Textboxes (A) elemet. Ezek minta Form-ok, melyek tetszés szerint behelyezhetők a telepítő űrlapjainak sorába. A Start pontban megjelenik a Form, melynek menüjében található olyan pont, mellyel a helyét módosíthatjuk.


A Form Tulajdonság lapján a BannerText property-ben megadott szöveg lesz a cím szövege. A BodyText értéke lesz a műveletre való felszólítás szövege. Az Edit1Label címke szövege lesz a szövegmező fölötti felirat. És az Edit1Value lesz a szövegmezőben megjelenő érték, jelen esetben a Products.xml.


Az Edit(szám)Visible értékeket FALSE-ra állítva a Form többi TextBox kontrolja nem lesz látható.


Telepítőben megadott adat feldolgozása
A telepítőben megadott űrlapon bekérjük az állománynevet, mely bekerül a telepítéskor a célmappában elhelyezett konfigurációs állományba; a program indulásakor már csak fel kell dolgozni. Ehhez a ConfigurationSettings osztályt használjuk fel.
string filename = ConfigurationSettings.AppSettings["FileName"];
Majd beolvassuk az állományt a DataSet-be.
ds.ReadXml(Application.StartupPath + "\\" + filename);

Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2003 évkönyv 337. 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 |