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;

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.

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); }

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