Setup & ConnectionString

15 Mart Cumartesi, 2008 | C# /*Yorumlar (3)*/

Kurulumsetup sırasında uygulamanın kullanacağı veritabanı bağlantı bilgisi nasıl elde edilir? Bir örnek yapalım.

Önce;
Setup projesinin UserInterface Editör'üne bir adet TextBoxes (A) Form u ekleyelim. Bu form üzerinde 4 adet TextBox kontrolü bulunuyor. İhtiyaç duyacağımız bilgileri almak için ideal. Daha sonra formu Installation Folder dialoğun üstüne alalım ve özellikpropertyleri resimdeki gibi eşitleyelim;

User Interface

Değerleri Installation Classnesne taki metoda geçirmek için Custom Action Editör'üne Install Action ekleyelim ve CustomActionData özelliğini resimdeki gibi ayarlayalım.

Custom Action

Sonra;
Projemize bir adet InsallerClass ekleyelim. OnAfterInstall metodunu ezipoverride gerekli kodları yazalım;

protected override void OnAfterInstall(IDictionary savedState)
{
    string data = Context.Parameters["cs"];
    string[] datas = data.Split(';');
    string value = string.Format("Data Source={0};Initial Catalog=northwind;uid={1};pwd={2};",
                    datas[0],
                    datas[1],
                    datas[2]);
    Assembly thisAss = Assembly.GetExecutingAssembly();
    string path = thisAss.
                    Location.
                    Replace(thisAss.GetName().Name + ".exe",
                            thisAss.GetName().Name + ".exe.config"); 
    XmlDocument doc = new XmlDocument();
    doc.Load(path);
    doc.SelectSingleNode("/configuration/connectionStrings/add[@name='strConn']")
        .Attributes["connectionString"].Value = value;
    doc.Save(path);            
    base.OnAfterInstall(savedState);
 }

Installer

Kurulum sırasında kullanıcının belirlediği değerler, App.config dosyasındaki ConnectionString özelliğine yazılacaktır.

Yorumlar

mehmet özdemir

Hay Allah senden razı olsun ben bunu günlerdir arıyordum.Nasıl yapıcam deyip duruyordum.Gerçekten çok teşekkürler sana.

26 Nisan Pazartesi, 2010

Emre AYRILMAZ

Rica ederim.

26 Nisan Pazartesi, 2010

Mehmet Özdemir

Ben bunu denedim.Mesela setup olustururken eger app.config e mudahale etme gibi durum söz konusu degilse normal problemsiz kurulum gerçeklesiyor fakat aynen dediginiz olayı yapmaya calısınca ise karsıma object reference not set to an instance of an object böyle bir hata cıkarıyor ve bir türlü kurulum gerceklesmiyor sebebi nedir acaba?

9 Mayıs Pazar, 2010

Yorum Yaz

Ad

Email (sahte adresli yorumlar silinir.)

Yorum