ClickOnce Deployment

Uzun uğraşlar sonrasında add-in'imiz bitti ve kullanıma hazır. Başka kişilerin VSTO add-in'inizi kullanmaya başlaması için iki yol var.

  • ClickOnce Deployment
  • MSI Installer(Windows Installer)

Biz burada ilkini göreceğiz, ikincisini de bir sonraki sayfada. Farkları şöyle:

  • ClickOnce, bir bilgisayarda birden fazla kullanıcı çalışıyorsa sadece geçerli kullanıcının hesabına kurulum yapar, diğer kişiler de kullanacaksa onlar da tek tek kurmalıdır. MSI Installer ise herkesin hesabına kurmuş olur.
  • ClickOnce kurulumu basit bir arayüze sahiptir, profesyonel bir program görüntüsü vermez. Üstelik ara stepler bulunmaz. MSI Installer ise bunları yapar.
  • Projenizde güncelleme yaptığınızda ClickOnce ile kuranlar bu güncelleştirmeleri otomatik alırlar. Sizin tekrardan bi setup dosyası göndermenize gerek olmaz. MSI'la kuranlar ise her yeni güncelleme sonunda yeni kurulum yapmak durumundalar.

Kurulum yaptığınızda setup dosyaları Registry'nizde kayıt oluşturur. Bu teknik bir detay olup ilgilenenler buraya bakabilir.

Şimdi kurulum aşamalarına geçelim.

Kurulum aşamaları

ClickOnce deployment ile ilgili ana referans dokümanımız şurada olup ben size bu sayfada özetini vermeye çalışacağım.

  • İlk olarak projemizin configuration tipi Debug'tayken Build menüsünde Clean yapalım. Böylece registry kayıtlarını silelim ki çakışma problemleri yaşamayalım. Şuan mesela Registry'de HKEY_CURRENT_USER>Software>Microsoft>office altındaki görüntü şöyle: post-thumb

    Ancak 2 tanesini Clean ettikten sonra baktığımda şöyle:

    post-thumb
  • Şimdi ikinci olarak configuration tipini Debug'dan Release'e alalım ve projemizi build edelim. Şimdiye kadar farkettiğiniz üzere projemizi parça parça oluşturup denemeler yaparken F5 tuşuna bastığında, yani Debug modda çalıştırdığımızda projemizin alt tarafta build edildiğini görmüşsünüzdür. Ve aslında bu tüm .Net projelerindeki sürecin aynısıdır. Çok kritik değil ancak gerek genel kültür gerek bir sorun yaşamanız durumunda Build süreci hakkında detay bilgi almak adına buraya bakabilirsiniz. Açılan linkte ve altındaki linklerde çok detaylı bilgiler edinebilirsiniz. Office programlarına özel olarak build işlemleri için de buraya bakabilirsiniz
  • Solution Explorer'da Properties'e(VB.Net'te MyProject) çift tıklayın ve proje pencerenizde Publish sekmesine gelin
  • Açılan yerde Publish Folder Location'da, kurulum dosyaları nereye kopyalanacaksa orayı seçin. Bi altındaki Installation Folder kısmı genelde boş bırakırız, böylece kullanıcılar da yine publish edilen folderdan kurmaya çalışır. Tabi siz buraya kurumunuzdaki herkesin erişeceği ortak alanı(Ör:\\M00002\\OrtakFolder\) seçmelisiniz. Veyahut, bir web alanı da girebilirsiniz.(Türçke karakter olmamalı)
post-thumb
  • Prerequisites seçimleri defaulttaki gibi kalsın
  • Updates butonunudan, kullanıcıların kurulum paketleri ne sıklıkta yeni versiyon arasın, onu seçiyoruz
  • Options'dan da projenizle ilgili genel bilgileri girebiliyorsunuz

Son olarak Publish Now diyoruz. Publish Version alanında yazan numaralar projenizin versiyon numarasını takip etmek için kullanılır. Sonuncusu her publish sırasında otomatik olarak 1 artar. Diğerlerini siz manuel değiştirebilirsiniz. Bunların ne anlama geldiğinde google’da arayabilirsiniz.

Bu arada olur da kodunuzun bir yerinde add-in'inizin versiyonunu göstermek isterseniz aşağıdaki kod ile gösterebilirsiniz. Bunu yazabilmek için System.Deployment namespace'ini reference olarak eklemelisiniz.

using System.Deployment.Application;
this.label1.Label = ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString(4);

Ama bu kod, debug modda değil, release modda kurulum yaptıktan sonra çalışır.

Kurulum

Kurulum dosyanız hazır ve kullanıcılarınıza bunu dağıttıktan sonra sadece setup.exe'yi çalıştırmaları yeterli. Kendi PC'nizde denerken herhangi bir sorunla karşılaşmazsınız, direkt aşağıdaki gibi bir pencere çıkacak, Install diyeceksiniz, o kadar. (Sonraki deneme yanılmalarınızda sorun yaşamanız ise muhtemel. Böyle bir durumda, projeyi Clean etmeyi ve/veya Control Panelden kurulmuş programınızı kaldırmayı deneyebilirsiniz.)

post-thumb

Ancak diğer kullanıcılarda sorun çıkabilir. Excelent add-in'imde benim yaptığım gibi siz de ücretli sertifika almadıysanız https://www.excelinefendisi.com/Excelent/Download.aspx sayfasında belirttiğim adımların işletilmesi gerekmektedir.

Kurulum yapıldıktan sonra Registry'de ayrıca VSTA folder'ı altında bir de bunu application olarak görürüz. 

post-thumb

Sadece orada değil, aynı zamanda Control Panel>Programs altına da gelir. Zira artık bu bilgisayarımıza kurulmuş bi programdır. Bunu kaldırmak tıpkı normal programları kaldırmak gibidir. Yani Developer menüsünde COM add-ins altından check işaretin kaldırmak yetmez, o sadece "Excel'de yüklenmesini istemiyorum" demektir ama PC'nizde hala yüklüdür. Komple kaldırmak için Control Panelden işlem yaparız.

post-thumb

Şimdi bu arada fark ettiyseniz, VSTOWorkbook çalışmamız da burda bir program gibi görünüyor. Evet, o da publish edildiği için bir program olarak görünecektir. Bunlarla ilgili işlemler de aşağı yukarı aynı olup ilave yapılması gerekenler için ClickOnce linkinden bilgi alabilirsiniz.

Performans

VSTO Add-in'lerin performanısını iyileştirme konusundaki şurada ClickOnce yerine Windows Installer kullanılmasının bazı aşamların pypass edilmesi nedeniyle daha hızlı olduğu söylenmekte. Burda karar size kalmış, diğer performans artırıcı yöntemleri denediğiniz halde hala performans sorunu yaşıyorsanız sizi sonraki sayfaya alalım.