Makale Özeti

Bu makalemde C# ile 2.0 kullanarak “.msi” dosyalarının nasıl yüklenip kaldırılabildiğini göreceğiz.

Makale

C# ile yazılımları yükleme ve kaldırma işlemleri


Bu makalemde C# ile 2.0 kullanarak “.msi” dosyalarının nasıl yüklenip kaldırılabildiğini göreceğiz.

Öncelikle programın iç yapısından bahsetmek istiyorum. Bunları maddeler halinde belirtirsem sanırım daha iyi bir kolaylık olur.

Windows Installer’dan yararlanmak için Microsoft’un bize sunduğu msiexec.exe bileşenini kullanırız. Bu bileşenle birlikte “.msi” dosyalarının yükleme, kaldırma ve onarma işlemlerini gerçekleştirebiliriz. Msiexec.exe’nin de tıpkı diğer exe dosyaları gibi özel parametreleri vardır. Bu .exe’nin detaylarını öğrenmek için şurayı ziyaret edebilirsiniz. Şimdi gelelim msiexec.exe içinde bize lazım olacak kısımlara.


1- Setup Ayarları

- Yükleme işlemleri için “/i”.
- Kaldırma işlemleri için “/x”.
- Onarma işlemleri için “f”.

2- Ekran Ayarları

- Kullanıcı arayüzü görünmüyorsa “/qn”.
- Dialog boxla beraber sınırlı kullanıcı görünüp yükleme işlemi tamamlanıyorsa “/qb”.
- Dialog boxla kullanıcı arayüzü tamamen görünüyorsa “/qr”.
- Dialog box dışında kullanıcı arayüzü görünmüyorsa “/qf”.

Böylelikle projenin kodlamasında göreceğimiz parametrelerin de ne anlama geldiğini hemen hemen öğrenmiş olduk. Artık projemizi geliştirebiliriz.

Öncelikle aşağıdaki tasarımı yapmamız gerekiyor:



Yaptığımız şey bir open file dialog box koymak ve ismini ofdMsiBrowser olarak değiştirmek.


Kod bölümüne geçiyoruz. System.Diagnostics namespaceini projemize eklemek zorundayız.

 

using System.Diagnostics;

Yazacağımız
manipulateSoftware fonksiyonu için yazıyoruz:

private Process mv_prcInstaller = new Process();




Daha sonra install buttonuna tıklandığında yapılacak işlemi belirtiyoruz.

private void installSoftware(object sender, EventArgs e)

        {

            //yükleme işlemi yapacağımızdan göndereceğimiz komut -> /i

            manipulateSoftware("/i");

        }

 




Diğer buttonda ise uninstall işlemini yapacağımızı belirtiyoruz.

private void uninstallSoftware(object sender, EventArgs e)

        {

            //silme işlemi yapacağımızdan göndereceğimiz komut -> /x

            manipulateSoftware("/x");

        }

 

Browse buttonuna tıklandığında gerçekleşecek işlemler için aşağıdaki kodları yazıyoruz.

private void browseMSIAplication(object sender, EventArgs e)

{

ofdMsiBrowser.InitialDirectory = @"C:\";

//.msi dosyalarıyla çalışacağımızdan;
ofdMsiBrowser.Filter =
"msi installer files (*.msi)|*.msi";

if (ofdMsiBrowser.ShowDialog() == DialogResult.OK)

txtPath.Text = ofdMsiBrowser.FileName;

}

 

Son olarak kodların en başında belirttiğimiz manipulateSoftware fonksiyonunu yazıyoruz.

private void manipulateSoftware(string p_strAccion)

        {

            //böylelikle programın ekran özelliklerini de ayarlamış oluyoruz

            mv_prcInstaller.StartInfo.FileName = "msiexec.exe";

            mv_prcInstaller.StartInfo.Arguments = p_strAccion + "\"" + txtPath.Text + "\"" +"/qn";

            mv_prcInstaller.Start();

        }



Her şey bu kadar. Şimdi projemizi çalıştırıp C:\’nin içinden bir .msi dosyası seçip programın nasıl çalıştığını görebilirsiniz.


Dilersek bir de repair buttonu yapıp şu kodları yazarak kullanabilirdik:

private void repairSoftware()

{

    Process p = new Process();

    p.StartInfo.FileName = "msiexec.exe";

    p.StartInfo.Arguments = "/f \"C:\\Application.msi\"/qn";

    p.Start();
}

Umarım farklı ve işinize yarar bir makale olmuştur.


Tekrar görüşmek üzere, C# ile kalın.


Yağız GÖNÜLER
yagizgonuler@gmail.com




Kaynaklar:

- Microsoft
- Code Project