Makale Özeti

Windows tabanlı kurulum projelerinin vazgeçilmezleri arasında yer alan ve ileride de ClickThrough projesiylede önemini artıracağını düşündüğüm WiX dünyasına bu makale ile Uygulama Ağırlıklı olarak giriş yapmaya başlayacağız.

Makale

Windows Installer XML (WiX) – Başlangıç 1

Mehmet Akif ÇAKAR, 2007, 1.0

Ön Bilgiler:

Windows İnstaller XML yani kısa adıyla WiX Windows yükleme paketlerini (.msi) xml kodlarıyla oluşturmamızı sağlayan bir araç denilebilir. (Ayrıca Microsoft tarafından açık kaynak kodlu olarak yayınlanan ilk proje olduğunu da belirteyim).

 

Bu yazı dizisinde WiX’in kullanımı hakkında bilgi vermeye çalışacağım ve son yazıya kadar gittikçe karmaşıklaşan deployment projeleri yapacağız. Yapılacak projelerinde WiX 2.0 yani stabil sürümü üzerinde gerçekleştireceğimizi ayrıca belirmekte fayda var J

 

Örnek olarak verilecek WiX “.xml” kodlarında GUID gerektiren alanlarına SIZIN_GUID_DEGERINIZ şeklinde geçmeyi uygun gördüm bu alanlar için denemelerinizde ve projelerinizde kendinize ait guid değerleri girmeniz gerekecektir. (Guid üretmek için Visual Studio .NET IDE sinde bulunan Tool menüsünden “Create Guid” aracını kullanabilirsiniz.).

 

Örnek WiX kodları varsayılan dil olarak Türkçe’yi esas alacağından gerekli karakter tanım değerleri bu doğrultuda olacaktır.

 

Proje geliştirme ortamı olarak WiX projesinin Visual Studio .Net eklentisi olan vovite’yi kullanacağız dolayısıyla wix projesinin web sitesinden(http://wix.sourceforge.net/) bu eklentiyi de yüklemeniz faydanıza olacaktır. Deployment projelerini geliştirecek kişiler için Vovite nasıl yüklenir gibi konulara girmeye gerek duymadan ve başlangıç kısmına geçiyorum.

 

Başlangıç:

Her ne kadar Vovite ile geliştirilen uygulamalarda pek farkına varmasak ta bilgi açısından değinmek istediğim bazı noktalar var ki bu noktalar kurumsal süreçlerde imdadımıza yetişecek yegâne noktalar olacaktır. (Örneğin; firmadaki build sisteminin çıktısı olarak .MSİ paketlerinin üretilmesi, MSBuild entegrasyonu vs. vs.)

 

Projelerimizi MSİ paketlerine çevirmek için wix içerisinde mevcut olan 2 aracı daha sık olarak kullanacağız bunlar projenin derleyicisi(compiler) olan “candle.exe” ve bağlayıcısı(linker) olan “light.exe” (Buradan yazdığımız “.xml” daha doğrusu “.wxs” dosyalarını iki süreçten geçirmemiz gerektiğini anlayabiliriz. Wix üzerinde modülasyon konularına geldiğimizde neden sürecin iki parçaya ayrıldığını kafamızda daha iyi oturtabiliriz).

 

En temel olarak WiX projelerimiz aşağıdaki örnekte yer alan “.xml” kodları şeklinde olacaktır.

 

<?xml version="1.0" encoding="UTF-8"?>

<Wix xmlns="http://schemas.microsoft.com/wix/2003/01/wi">

  <Product Id="SIZIN_GUID_DEGERINIZ" Name="İlk Ders Projesi" Codepage="1254" Language="1055" Version="1.0.0.0" Manufacturer="Mehmet Akif ÇAKAR">

    <Package Id="SIZIN_GUID_DEGERINIZ_PAKET_ICIN_AYRI_GUID" Description="İlk ders projesi kurulum paketi desek :)" Comments="Özet kısmı için açıklama" InstallerVersion="200" Compressed="yes" />

 

    <Media Id="1" Cabinet="IlkDersProjesi.cab" EmbedCab="yes" />

 

    <!-- Nitelik Örneği -->

    <Property Id="YUKLEMEDIZINI" Value="C:\IlkDersProjesi" />

   

    <Directory Id="YUKLEMEDIZINI" Name="TemelDiz">

        <Directory Id="AltDizin" Name="UygDizin" LongName="İlk Ders">

 

          <Component Id="IlkUrunBileseni" Guid="SIZIN_GUID_DEGERINIZ_HER_BILESEN_ICIN_AYRI_GUID">

            <!-- yükleme dosyaları, kayıt kütüphaneleri ve diğer kaynaklar bu alana girilecek -->

          </Component>

 

        </Directory>

      </Directory>

 

    <Feature Id="UrunKurulumOzelligi" Title="Önerilen Kurulum" Level="1">

      <ComponentRef Id="IlkUrunBileseni" />

    </Feature>

  </Product>

</Wix>


Uygulamaya Geçiş

Anlatarak makaleye devam etmektense sizleri kollarınızı sıvayarak işin içine çekmeyi düşünüyorum bu yüzden başlangıç düzeyi için makaleye eklenti olarak hazırladığım ilk ders projesini bağladım. Bu eklenti projeyi inceleyerek hangi alanlara neler eklenmiş? ne için eklenmiş? nasıl eklenmiş vb. aklınıza gelebilecek sorulara yanıt bulabilirsiniz. (Özellikle açıklama satırlarından faydalanılabilir). Diğer yazıda görüşmek üzere…

 

Mehmet Akif ÇAKAR;

http://authors.sbbsoftware.com/MehmetAkifCAKAR/

 

İlk Ders için hazırlanan proje dosyası