Aracılığıyla paylaş


Windows Installer Kullanarak VSTO Çözümü Dağıtma

Özet

bir Visual Studio Yükleyicisi projesi kullanarak Office için Microsoft Visual Studio Araçları (VSTO) eklentisi veya belge düzeyi çözümü dağıtmayı öğrenin.

Wouter van Vugt, Kod Danışmanı

Ted Pattison, Ted Pattison Grubu

Bu makale Microsoft tarafından özgün yazarların izniyle güncelleştirildi.

Şunlar için geçerlidir: Office, Microsoft Office, Microsoft Visual Studio için Visual Studio Araçları.

Bir VSTO çözümü geliştirebilir ve bir Windows Installer paketi kullanarak çözümü dağıtabilirsiniz. Bu tartışma, basit bir Office Eklentisi dağıtma adımlarını içerir.

Dağıtım Yöntemleri

ClickOnce, Eklentileriniz ve çözümleriniz için kurulumlar oluşturmak için kolayca kullanılabilir. Ancak, makine düzeyi Eklentileri gibi yönetim ayrıcalıkları gerektiren Eklentileri yükleyemez.

Yönetici ayrıcalıkları gerektiren eklentiler Windows Installer kullanılarak yüklenebilir, ancak kurulumu oluşturmak için daha fazla çaba gerektirir.

ClickOnce kullanarak VSTO çözümünü dağıtmaya genel bakış için bkz . ClickOnce kullanarak Office çözümü dağıtma.

VSTO çalışma zamanını hedefleyen Office çözümlerini dağıtma

ClickOnce ve Windows Installer paketlerinin bir Office çözümü yüklerken aynı temel görevleri yapması gerekir.

  1. Önkoşul bileşenlerini kullanıcı bilgisayarına yükleyin.
  2. Çözüm için belirli bileşenleri dağıtın.
  3. Eklentiler için kayıt defteri girdileri oluşturun.
  4. Yürütülmesine izin vermek için çözüme güvenin.

Hedef Bilgisayarda Gerekli Önkoşul Bileşenleri

VSTO çözümlerini çalıştırmak için bilgisayarda yüklü olması gereken yazılımların listesi aşağıdadır:

  • Microsoft Office 2010 veya üzeri.
  • Microsoft .NET Framework 4 veya üzeri.
  • Office Çalışma Zamanı için Microsoft Visual Studio 2010 Araçları. Çalışma zamanı, Eklentileri ve belge düzeyi çözümleri yöneten bir ortam sağlar. Çalışma Zamanı sürümü Microsoft Office ile birlikte gönderilebilir, ancak eklentinizle belirli bir sürümü yeniden dağıtmak isteyebilirsiniz.
  • Katıştırılmış Birlikte Çalışma Türleri kullanmıyorsanız, Microsoft Office için Birincil Birlikte Çalışma derlemeleri.
  • Projeler tarafından başvuruda kullanılan tüm yardımcı programlar derlemeleri.

Çözüm için Belirli Bileşenler

Yükleyici paketinin bu bileşenleri kullanıcının bilgisayarına yüklemesi gerekir:

  • Belge düzeyinde bir çözüm oluşturursanız Microsoft Office belgesi.
  • Özelleştirme derlemesi ve gerekli tüm derlemeler.
  • Yapılandırma dosyaları gibi ek bileşenler.
  • Uygulama bildirimi (.manifest).
  • Dağıtım bildirimi (.vsto).

Eklentiler için Kayıt Defteri Girdileri

Microsoft Office, Eklentileri bulmak ve yüklemek için kayıt defteri girdilerini kullanır. Bu kayıt defteri girdileri dağıtım işleminin bir parçası olarak oluşturulmalıdır. Bu kayıt defteri girdileri hakkında daha fazla bilgi için bkz . VSTO Eklentileri için kayıt defteri girdileri.

Özel form bölgelerini görüntüleyen Outlook Eklentileri, form bölgelerinin tanımlanmasına izin veren ek kayıt defteri girdileri gerektirir. Kayıt defteri girdileri hakkında daha fazla bilgi için bkz . Outlook form bölgeleri için kayıt defteri girdileri.

Belge düzeyinde çözümler için kayıt defteri girdisi gerekmez. Bunun yerine, özelleştirmeyi bulmak için belgenin içindeki özellikler kullanılır. Bu özellikler hakkında daha fazla bilgi için bkz . Özel Belge Özelliklerine Genel Bakış.

VSTO Çözümüne Güvenme

Özelleştirmenin çalışması için makine tarafından bir çözüme güvenilmesi gerekir. Eklentiye bildirim bir sertifikayla imzalanarak, ekleme listesiyle bir güven ilişkisi oluşturularak veya makinedeki güvenilir bir konuma yüklenerek güvenilebilir.

İmzalama sertifikası alma hakkında daha fazla bilgi için bkz . ClickOnce Dağıtımı ve Authenticode. Çözümlere güvenme hakkında daha fazla bilgi için bkz . Ekleme Listelerini Kullanarak Office Çözümlerine Güvenme. Windows Installer dosyanıza özel bir eylem içeren bir ekleme listesi girdisi ekleyebilirsiniz. Ekleme listesini etkinleştirme hakkında daha fazla bilgi için bkz . Nasıl yapılır: Ekleme Listesi Güvenliğini Yapılandırma.

İki seçenek de kullanılmazsa, çözüme güvenip güvenmeyeceğine karar vermesine izin vermek için kullanıcıya bir güven istemi görüntülenir.

Belge düzeyi çözümleriyle ilgili güvenlik hakkında daha fazla bilgi için bkz . Belgelere Güven Verme.

Temel Yükleyici Oluşturma

Kurulum ve Dağıtım proje şablonları, indirilebilen Microsoft Visual Studio Yükleyicisi Projeleri uzantısına eklenir.

Office çözümü için yükleyici oluşturmak için şu görevlerin gerçekleştirilmesi gerekir:

  • Dağıtılacak Office Çözümünün bileşenlerini ekleyin.
  • Uygulama düzeyi Eklentiler için kayıt defteri anahtarlarını yapılandırın.
  • Önkoşul bileşenlerini son kullanıcılara yüklenebilmeleri için yapılandırın.
  • Gerekli önkoşul bileşenlerinin kullanılabilir olduğunu doğrulamak için başlatma koşullarını yapılandırın. Gerekli tüm önkoşullar yüklü değilse yüklemeyi engellemek için başlatma koşulları kullanılabilir.

İlk adım kurulum projesini oluşturmaktır.

AddIn Kurulum projesini oluşturmak için

  1. Dağıtmak istediğiniz Office AddIn Projesini açın. Bu örnekte, ExcelAddIn adlı bir Excel Eklentisi kullanıyoruz.
  2. Office Projesi Açıkken, Dosya menüsünde Ekle'yi genişletin ve yeni proje eklemek için Yeni Proje'ye tıklayın.
  1. Yeni Proje Ekle iletişim kutusunda Proje Kurulumu şablonunu seçin.
  2. İleri'ye tıklayın.
  1. Ad kutusuna OfficeAddInSetup yazın.
  1. Yeni kurulum projesini oluşturmak için Oluştur'a tıklayın.

Visual Studio, yeni kurulum projesi için Dosya Sistemi Gezgini'ni açar. Dosya Sistemi Gezgini, kurulum projesine dosya eklemenize olanak tanır.

Kurulum projesi için Dosya Sistemi Gezgini'nin ekran görüntüsü

Şekil 1: Kurulum projesi için Dosya Sistemi Gezgini

Kurulum projesinin ExcelAddIn'i dağıtması gerekir. Kurulum projesine ExcelAddIn proje çıkışını ekleyerek bu görev için kurulum projesini yapılandırabilirsiniz.

ExcelAddIn proje çıkışını eklemek için

  1. Çözüm Gezgini, OfficeAddInSetup'a sağ tıklayın, Ekle'ye ve ardından Proje Çıktısı'na tıklayın.

  2. Proje Çıktı Grubu Ekle iletişim kutusunda proje listesinden ExcelAddIn'i ve Birincil Çıktı'yı seçin.

  3. Proje çıkışını kurulum projesine eklemek için Tamam'a tıklayın.

    Proje Proje Çıktı Grubu Ekle iletişim kutusunun ekran görüntüsü

    Şekil 2: Proje Proje Çıkış Grubu Ekle iletişim kutusunu ayarlama

Kurulum projesinin dağıtım bildirimini ve uygulama bildirimini dağıtması gerekir. Bu iki dosyayı, ExcelAddIn projesinin çıkış klasöründen tek başına dosyalar olarak kurulum projesine ekleyin.

Dağıtım ve uygulama bildirimlerini eklemek için

  1. Çözüm Gezgini, OfficeAddInSetup'a sağ tıklayın, Ekle'ye ve Dosya'ya tıklayın.

  2. Dosya Ekle iletişim kutusunda ExcelAddIn çıkış dizinine gidin. Genellikle çıkış dizini, seçilen derleme yapılandırmasına bağlı olarak proje kök dizininin bin\release alt klasörüdür.

  3. ExcelAddIn.vsto ve ExcelAddIn.dll.manifest dosyalarını seçin ve bu iki dosyayı kurulum projesine eklemek için Aç'a tıklayın.

    Çözüm Gezgini'daki Uygulama ve dağıtım bildirimlerinin ekran görüntüsü

    Şekil 3: Eklenti Çözüm Gezgini için uygulama ve dağıtım bildirimleri

ExcelAddIn'e başvurmak, ExcelAddIn'in gerektirdiği tüm bileşenleri içerir. Bu bileşenlerin doğru şekilde kaydedilmesine izin vermek için önkoşul paketleri kullanılarak dışlanması ve dağıtılması gerekir. Ayrıca, yükleme başlamadan önce Yazılım Lisans Koşulları'nın görüntülenmesi ve kabul edilmesi gerekir.

ExcelAddIn proje bağımlılıklarını dışlamak için

  1. Çözüm Gezgini, OfficeAddInSetup düğümünde, Algılanan Bağımlılıklar öğesinin altındaki Microsoft .NET Framework veya * ile biten tüm derlemeler dışında tüm bağımlılık öğelerini seçin. Utilities.dll. Yardımcı Programlar derlemelerinin uygulamanızla birlikte dağıtılması amaçlandı.

  2. Gruba sağ tıklayın ve Özellikler'i seçin.

  3. Özellikler penceresinde, bağımlı derlemeleri kurulum projesinin dışında tutmak için Exclude özelliğini True olarak değiştirin. Yardımcı Programlar derlemelerini dışlamamaya dikkat edin.

    Dışlanması gereken bağımlılıkları gösteren Çözüm Gezgini ekran görüntüsü

    Şekil 4: Bağımlılıkları dışlama

Önyükleyici olarak da bilinen bir Kurulum programı ekleyerek Windows Installer paketinizi önkoşul bileşenlerini yükleyecek şekilde yapılandırabilirsiniz. Bu kurulum programı, önyükleme adlı bir işlem olan önkoşul bileşenlerini yükleyebilir.

ExcelAddIn için, Eklentinin düzgün çalışabilmesi için bu önkoşulların yüklenmesi gerekir:

  • Office Çözümünün hedeflediğini Microsoft .NET Framework sürümü.
  • Office Çalışma Zamanı için Microsoft Visual Studio 2010 Araçları.

Bağımlı bileşenleri önkoşul olarak yapılandırmak için

  1. Çözüm Gezgini, OfficeAddInSetup projesine sağ tıklayın ve Özellikler'i seçin.

  2. OfficeAddInSetup Özellik Sayfaları iletişim kutusu görüntülenir.

  3. Önkoşullar düğmesine tıklayın.

  4. Önkoşullar iletişim kutusunda, .NET Framework'ün ve Office Çalışma Zamanı için Microsoft Visual Studio Araçları'nin doğru sürümünü seçin.

    Önkoşullar İletişim Kutusunun ekran görüntüsü

    Şekil 5: Önkoşullar İletişim Kutusu

    Not

    Visual Studio Kurulum Projenizde yapılandırılan önkoşul paketlerinden bazıları seçili derleme yapılandırmasına bağlıdır. Kullandığınız her derleme yapılandırması için doğru önkoşul bileşenlerini seçmeniz gerekir.

Microsoft Office, kayıt defteri anahtarlarını kullanarak Eklentileri bulur. HKEY_CURRENT_USER kovandaki anahtarlar, eklentiyi her bir kullanıcı için kaydetmek için kullanılır. HKEY_LOCAL_MACHINE kovanın altındaki anahtarlar, eklentiyi makinenin tüm kullanıcılarına kaydetmek için kullanılır. Kayıt defteri anahtarları hakkında daha fazla bilgi için bkz . VSTO Eklentileri için kayıt defteri girdileri.

Kayıt defterini yapılandırmak için

  1. Çözüm Gezgini, OfficeAddInSetup öğesine sağ tıklayın.

  2. Görünüm'ü genişletin.

  3. Kayıt defteri düzenleyicisi penceresini açmak için Kayıt Defteri'ne tıklayın.

  4. Registry(OfficeAddInSetup) düzenleyicisinde HKEY_LOCAL_MACHINE ve ardından Yazılım'ı genişletin.

  5. HKEY_LOCAL_MACHINE\Software altında bulunan [Manufacturer] anahtarını silin.

  6. HKEY_CURRENT_USER ve ardından Yazılım'ı genişletin.

  7. HKEY_CURRENT_USER\Software altında bulunan [Manufacturer] anahtarını silin.

  8. Eklenti yüklemesinin kayıt defteri anahtarlarını eklemek için User/Machine Hive anahtarına sağ tıklayın, Yeni Anahtar'ı seçin. Yeni anahtarın adı için Yazılım metnini kullanın. Yeni oluşturulan Yazılım anahtarına sağ tıklayın ve Microsoft metniyle yeni bir anahtar oluşturun.

  9. Eklenti kaydı için gereken anahtar hiyerarşisinin tamamını oluşturmak için benzer bir işlem kullanın:

    User/Machine Hive\Software\Microsoft\Office\Excel\Addins\SampleCompany.ExcelAddIn

    Şirket Adı genellikle benzersizlik sağlamak için eklentinin adı için ön ek olarak kullanılır.

  10. SampleCompany.ExcelAddIn tuşuna sağ tıklayın, Yeni'yi seçin ve Dize değeri'ne tıklayın. Ad için Açıklama metnini kullanın.

  11. Üç değer daha eklemek için bu adımı kullanın:

    • String türünde FriendlyName
    • DWORD türünde LoadBehavior
    • Dize türü bildirimi
  12. Kayıt defteri düzenleyicisinde Açıklama değerine sağ tıklayın ve Özellikler Penceresi'ne tıklayın. Özellikler Penceresi'ne Value özelliği için Excel Tanıtım Eklentisi girin.

  13. Kayıt defteri düzenleyicisinde FriendlyName anahtarını seçin. Özellikler Penceresinde Value özelliğini Excel Tanıtım Eklentisi olarak değiştirin.

  14. Kayıt defteri düzenleyicisinde LoadBehavior anahtarını seçin. Özellikler Penceresinde Value özelliğini 3 olarak değiştirin. LoadBehavior için 3 değeri, eklentinin konak uygulamanın başlangıcında yüklenmesi gerektiğini belirtir. Yükleme davranışı hakkında daha fazla bilgi için bkz . VSTO Eklentileri için kayıt defteri girdileri.

  15. Kayıt defteri düzenleyicisinde Bildirim anahtarını seçin. Özellikler Penceresinde Value özelliğini file:///[TARGETDIR]ExcelAddIn.vsto|vstolocal olarak değiştirin

    Kayıt Defteri Düzenleyicisi'nin ekran görüntüsü

    Şekil 6: Kayıt defteri anahtarlarını ayarlama

    VSTO çalışma zamanı, dağıtım bildirimini bulmak için bu kayıt defteri anahtarını kullanır. [TARGETDIR] makrosunun yerini eklentinin yüklü olduğu klasör alır. Makro sonunda \ karakterini içerecektir, bu nedenle dağıtım bildiriminin dosya adı \ karakteri olmadan ExcelAddIn.vsto olmalıdır. vstolocal sonek, VSTO çalışma zamanına Eklentinin ClickOnce önbelleği yerine bu konumdan yüklenmesi gerektiğini bildirir. Bu son eki kaldırmak çalışma zamanının özelleştirmeyi ClickOnce önbelleğine kopyalamasına neden olur.

Uyarı

Visual Studio'da Kayıt Defteri Düzenleyicisi'ne çok dikkat etmelisiniz. Örneğin, yanlış anahtar için DeleteAtUninstall'ı yanlışlıkla ayarlarsanız, kayıt defterinin etkin bir bölümünü silip kullanıcı bilgisayarı tutarsız, hatta daha da kötü bir bozuk durumda bırakabilirsiniz.

Office'in 64 bit sürümleri, Eklentileri aramak için 64 bit kayıt defteri kovanını kullanır. Eklentileri 64 bit kayıt defteri kovanına kaydetmek için kurulum projesinin hedef platformu yalnızca 64 bit olarak ayarlanmalıdır.

  1. Çözüm gezgininde OfficeAddInSetup projesini seçin.
  2. Özellikler penceresine gidin ve TargetPlatform özelliğini x64 olarak ayarlayın.

Office'in hem 32 bit hem de 64 bit sürümleri için bir Eklenti yüklemek için iki ayrı MSI paketi oluşturmanız gerekir. Biri 32 bit, diğeri 64 bit için.

Eklentileri 64 bit Office'e kaydetmek için Hedef Platformu gösteren Özellikler Penceresinin ekran görüntüsü

Şekil 7: Eklentileri 64 bit Office'e kaydetmek için Hedef Platform

MSI paketi Eklentiyi veya çözümü yüklemek için kullanılıyorsa, gerekli önkoşullar yüklenmeden yüklenebilir. Önkoşullar yüklü değilse Eklentinin yüklenmesini engellemek için MSI'deki Başlatma Koşulları'nı kullanabilirsiniz.

VSTO Çalışma Zamanını algılamak için başlatma koşulu yapılandırma

  1. Çözüm Gezgini, OfficeAddInSetup öğesine sağ tıklayın.

  2. Görünüm'ü genişletin.

  3. Başlatma Koşulları'nı tıklatın.

  4. Başlatma Koşulları(OfficeAddInSetup) düzenleyicisinde, Hedef Makinede Gereksinimler'e sağ tıklayın ve ardından Kayıt Defteri Başlatma Koşulu Ekle'ye tıklayın. Bu arama koşulu, VSTO çalışma zamanının yüklemiş olduğu bir anahtar için kayıt defterinde arama yapabilir. Anahtarın değeri daha sonra adlandırılmış bir özellik aracılığıyla yükleyicinin çeşitli parçaları tarafından kullanılabilir. Başlatma koşulu, belirli bir değeri denetlemek için arama koşulu tarafından tanımlanan özelliğini kullanır.

  5. Başlatma Koşulları(OfficeAddInSetup) düzenleyicisinde RegistryEntry1 ara arama koşulunu seçin, koşula sağ tıklayın ve Özellikler Penceresi'ni seçin.

  6. Özellikler penceresinde şu özellikleri ayarlayın:

    1. (Ad) değerini VSTO 2010 Çalışma Zamanı için Ara olarak ayarlayın.
    2. Property değerini VSTORUNTIMEREDIST olarak değiştirin.
    3. RegKey değerini SOFTWARE\Microsoft\VSTO Runtime Setup\v4R olarak ayarlayın
    4. Root özelliğini vsdrrHKLM olarak bırakın.
    5. Value özelliğini Sürüm olarak değiştirin.
  7. Başlatma Koşulları(OfficeAddInSetup) düzenleyicisinde Koşul1 başlatma koşulunu seçin, koşula sağ tıklayın ve Özellikler Penceresi'ni seçin.

  8. Özellikler penceresi şu özellikleri ayarlayın:

    1. (Ad) değerini VSTO 2010 Çalışma Zamanı kullanılabilirliğini doğrula olarak ayarlayın.

    2. Koşul değerini VSTORUNTIMEREDIST>="10.0.30319" olarak değiştirin

    3. InstallURL özelliğini boş bırakın.

    4. İletiyi Office Çalışma Zamanı için Visual Studio 2010 Araçları yüklü değil olarak ayarlayın. Eklentiyi yüklemek için lütfen Setup.exe çalıştırın.

      Çalışma Zamanı Kullanılabilirliğini Doğrulama başlatma koşulu için Özellikler Penceresinin ekran görüntüsü

      Şekil 8: Çalışma Zamanı Kullanılabilirliğini Doğrulama başlatma koşulu için Özellikler Penceresi

Yukarıdaki başlatma koşulu, önyükleyici paketi tarafından yüklendiğinde VSTO çalışma zamanının varlığını açıkça denetler.

Office tarafından yüklenen VSTO Çalışma Zamanı'nı algılamak için başlatma koşulu yapılandırma

  1. Başlatma Koşulları(OfficeAddInSetup) düzenleyicisinde, Hedef Makineyi Ara'ya sağ tıklayın ve ardından Kayıt Defteri Araması Ekle'ye tıklayın.

  2. RegistryEntry1 arama koşulunu seçin, koşula sağ tıklayın ve Özellikler Penceresi'ni seçin.

  3. Özellikler penceresinde şu özellikleri ayarlayın:

    1. (Ad) değerini Office VSTO Çalışma Zamanı Ara olarak ayarlayın.
    2. Property değerini OfficeRuntime olarak değiştirin.
    3. RegKey değerini SOFTWARE\Microsoft\VSTO Runtime Setup\v4 olarak ayarlayın.
    4. Root özelliğini vsdrrHKLM olarak bırakın.
    5. Value özelliğini Sürüm olarak değiştirin.
  4. Başlatma Koşulları(OfficeAddInSetup) düzenleyicisinde, daha önce tanımlanan VSTO 2010 Çalışma Zamanı kullanılabilirliğini doğrulama başlatma koşulunu seçin, koşula sağ tıklayın ve Özellikler Penceresi'ni seçin.

  5. Condition özelliğinin değerini VSTORUNTIMEREDIST >="10.0.30319" VEYA OFFICERUNTIME>="10.0.21022" olarak değiştirin. Eklentinizin gerektirdiği çalışma zamanı sürümlerine bağlı olarak sürüm numaraları sizin için farklı olabilir.

    Başlatma koşulu için Özellikler Windows'un ekran görüntüsü

    Şekil 9: Redist veya Office başlatma koşulu aracılığıyla Çalışma Zamanı Kullanılabilirliğini Doğrulama için Windows Özellikleri

Eklenti .NET Framework 4 veya daha yeni bir sürümü hedeflerse, başvuruda bulunulan Birincil Birlikte Çalışma Derlemeleri(PIA) içindeki Türler VSTO derlemesine eklenebilir.

Aşağıdaki adımları uygulayarak Birlikte Çalışma Türlerinin Eklentinize eklenip eklenmediğini denetlemek için:

  1. Çözüm Gezgini'da Başvurular Düğümünü genişletme
  2. PIA başvurularından birini (örneğin, Office) seçin.
  3. F4'e basarak veya Derlemeler bağlam menüsünden Özellikler'i seçerek özellikler pencerelerini görüntüleyin.
  4. Birlikte Çalışma Türlerini Ekle özelliğinin değerini denetleyin.

Değer True olarak ayarlanırsa Türler eklenir ve Kurulum projesini derlemek için bölümüne atlayabilirsiniz.

Daha fazla bilgi için bkz . Tür Eşdeğerliği ve Katıştırılmış Birlikte Çalışma Türleri

Office PIA'larında bunu algılayan başlatma koşullarını yapılandırmak için

  1. Başlatma Koşulları(OfficeAddInSetup) düzenleyicisinde, Hedef Makinede Gereksinimler'e sağ tıklayın ve ardından Windows Installer Başlatma Koşulu Ekle'ye tıklayın. Bu başlatma koşulu, belirli bir bileşen kimliğini arayarak bir Office PIA'yı arar.

  2. Başlatma koşulunun özelliklerini göstermek için Bileşen Ara1'e sağ tıklayın ve Özellikler Penceresi'ne tıklayın.

  3. Özellikler Penceresinde şu özellikleri ayarlayın:

    1. (Ad) özelliğinin değerini Office Paylaşılan PIA'yı ara olarak değiştirin
    2. Kullanmakta olduğunuz Office bileşeninin ComponentID değerini Bileşen Kimliği olarak değiştirin. Bileşen Kimlikleri listesini aşağıdaki tabloda bulabilirsiniz, örneğin {64E2917E-AA13-4CA4-BFFE-EA6EDA3AFCB4}.
    3. Property özelliğinin değerini HASSHAREDPIA olarak değiştirin.
  4. Başlatma Koşulları(OfficeAddInSetup) düzenleyicisinde Koşul1'e sağ tıklayın ve başlatma koşulunun özelliklerini göstermek için Özellikler Penceresi'ne tıklayın.

  5. Condition1'in şu özelliklerini değiştirin:

    1. (Ad) değerini Office Paylaşılan PIA kullanılabilirliğini doğrulama olarak değiştirin.
    2. Koşulu HASSHAREDPIA olarak değiştirin.
    3. InstallUrl'u boş bırakın.
    4. İleti'yi Excel ile etkileşim için gerekli bir bileşen olarak değiştirin. Lütfen setup.exe çalıştırın.

    Office Paylaşılan PIA başlatma koşulunun Özellikler Penceresinin ekran görüntüsü

    Şekil 10: Office Paylaşılan PIA başlatma koşulunun Özellikler Penceresi

Microsoft Office için Birincil Birlikte Çalışma Derlemelerinin Bileşen Kimlikleri

Birincil birlikte çalışma derlemesi Office 2010 Office 2013 Office 2013 (64 bit) Office 2016 Office 2016 (64 bit)
Excel {EA7564AC-C67D-4868-BE5C-26E4FC2223FF} {C8A65ABE-3270-4FD7-B854-50C8082C8F39} {E3BD1151-B9CA-4D45-A77E-51A6E0ED322A} {C845E028-E091-442E-8202-21F596C559A0} {C4ACE6DB-AA99-401F-8BE6-8784BD09F003}
InfoPath {4153F732-D670-4E44-8AB7-500F2B576BDA} {0F825A16-25B2-4771-A497-FC8AF3B355D8} {C5BBD36E-B320-47EF-A512-556B99CB7E41} - -
Outlook {1D844339-3DAE-413E-BC13-62D6A52816B2} {F9F828D5-9F0B-46F9-9E3E-9C59F3C5E136} {7824A03F-28CC-4371-BC54-93D15EFC1E7F} {2C6C511D-4542-4E0C-95D0-05D4406032F2} {7C6D92EF-7B45-46E5-8670-819663220E4E}
PowerPoint {EECBA6B8-3A62-44AD-99EB-8666265466F9} {813139AD-6DAB-4DDD-8C6D-0CA30D073B41} {05758318-BCFD-4288-AD8D-81185841C235} {9E73CEA4-29D0-4D16-8FB9-5AB17387C960} {E0A76492-0FD5-4EC2-8570-AE1BAA61DC88}
Visio {3EA123B5-6316-452E-9D51-A489E06E2347} {C1713368-12A8-41F1-ACA1-934B01AD6EEB} {2CC0B221-22D2-4C15-A9FB-DE818E51AF75} {A4C55BC1-B94C-4058-B15C-B9D4AE540AD1} {2D4540EC-2C88-4C28-AE88-2614B5460648}
Word {8B74A499-37F8-4DEA-B5A0-D72FC501CEFA} {9FE736B7-B1EE-410C-8D07-082891C3DAC8} {13C07AF5-B206-4A48-BB5B-B8022333E3CA} {30CAC893-3CA4-494C-A5E9-A99141352216} {DC5CCACD-A7AC-4FD3-9F70-9454B5DE5161}
Microsoft Forms 2.0 {B2279272-3FD2-434D-B94E-E4E0F8561AC4} {B2279272-3FD2-434D-B94E-E4E0F8561AC4} {A5A30117-2D2A-4C5C-B3C8-8897AC32C2AC} - -
Microsoft Graph {011B9112-EBB1-4A6C-86CB-C2FDC9EA7B0E} {52DA4B37-B8EB-4B7F-89C1-824654CE4C70} {24706F33-F0CE-4EB4-BC91-9E935394F510} - -
Akıllı Etiket {7102C98C-EF47-4F04-A227-FE33650BF954} {487A7921-EB3A-4262-BB5B-A5736B732486} {74EFC1F9-747D-4867-B951-EFCF29F51AF7} - -
Office Paylaşılan {64E2917E-AA13-4CA4-BFFE-EA6EDA3AFCB4} {6A174BDB-0049-4D1C-86EF-3114CB0C4C4E} {76601EBB-44A7-49EE-8DE3-7B7B9D7EBB05} {68477CB0-662A-48FB-AF2E-9573C92869F7} {625F5772-C1B3-497E-8ABE-7254EDB00506}
Project {957A4EC0-E67B-4E86-A383-6AF7270B216A} {1C50E422-24FA-44A9-A120-E88280C8C341} {706D7F44-8231-489D-9B25-3025ADE9F114} {0B6EDA1D-4A15-4F88-8B20-EA6528978E4E} {107BCD9A-F1DC-4004-A444-33706FC10058}

Son başlatma koşullarının ekran görüntüsü

Şekil 11: Son başlatma koşulları

ExcelAddIn yüklemesi için başlatma koşullarını daha da geliştirebilirsiniz. Örneğin, gerçek hedef Office uygulaması sürümünün yüklü olup olmadığını denetlemek yararlı olabilir.

Kurulum projesini oluşturmak için

  1. Çözüm Gezgini, OfficeAddInSetup projesine sağ tıklayın ve Oluştur'a tıklayın.
  2. Windows Gezgini'ni kullanarak OfficeAddInSetup projesinin çıkış dizinine gidin ve seçilen derleme yapılandırmasına bağlı olarak Yayın veya Hata Ayıklama klasörüne gidin. Klasördeki tüm dosyaları kullanıcıların erişebileceği bir konuma kopyalayın.

ExcelAddIn kurulumunu test etmek için

  1. OfficeAddInSetup'ı kopyaladığınız konuma gidin.
  2. OfficeAddInSetup eklentisini yüklemek için setup.exe dosyasına çift tıklayın. Görüntülenen yazılım lisans koşullarını kabul edin ve eklentiyi kullanıcı bilgisayarına yüklemek için kurulum sihirbazını tamamlayın.

Excel Office çözümü kurulum sırasında belirtilen konumdan yüklenip çalıştırılmalıdır.

Belge Düzeyi Çözümleri için Ek Gereksinimler

Belge düzeyi çözümlerin dağıtılması için Windows Installer kurulum projesinde birkaç farklı yapılandırma adımı gerekir.

Belge düzeyi çözümü dağıtmak için gereken temel adımların listesi aşağıdadır:

  • Visual Studio Kurulum Projesi'ni oluşturun.
  • Belge düzeyi çözümünüzün birincil çıkışını ekleyin. Birincil çıkış, Microsoft Office belgesini de içerir.
  • Dağıtım ve uygulama bildirimlerini gevşek dosyalar olarak ekleyin.
  • Bağımlı bileşenleri yükleyici paketinden hariç tutun (tüm yardımcı programlar derlemeleri dışında).
  • Önkoşul paketlerini yapılandırın.
  • Başlatma koşullarını yapılandırın.
  • Kurulum projesini oluşturun ve sonuçları dağıtım konumuna kopyalayın.
  • Kurulumu yürüterek belge düzeyi çözümünü kullanıcı bilgisayarına dağıtın.
  • Gerekirse özel belge özelliklerini güncelleştirin.

Dağıtılan Belgenin Konumunu Değiştirme

Bir Office belgesinin içindeki özellikler, belge düzeyi çözümlerini bulmak için kullanılır. Belge VSTO derlemesi ile aynı klasöre yüklenmişse hiçbir değişiklik gerekmez. Ancak farklı bir klasöre yüklenmişse bu özelliklerin kurulum sırasında güncelleştirilmiş olması gerekir.

Bu belge özellikleri hakkında daha fazla bilgi için bkz . Özel Belge Özelliklerine Genel Bakış.

Bu özellikleri değiştirmek için kurulum sırasında özel bir eylem kullanmanız gerekir.

Aşağıdaki örnekte, ExcelWorkbookProject adlı bir belge düzeyi çözümü ve ExcelWorkbookSetup adlı bir kurulum projesi kullanılır. ExcelWorkbookSetup projesi, kayıt defteri anahtarlarını ayarlamak dışında yukarıda açıklanan adımların aynısını kullanarak yapılandırılır.

Visual Studio çözümünüze özel eylem projesi eklemek için

  1. Çözüm Gezgini Office Belge Dağıtım Projesi'ne sağ tıklayarak çözüme yeni bir .NET Konsol projesi ekleyin

  2. Ekle'yi genişletin ve Yeni Proje'ye tıklayın.

  3. Konsol Uygulaması şablonunu seçin ve projeyi AddCustomizationCustomAction olarak adlandırın.

    Çözüm Gezgini - AddCustomizationCustomAction ekran görüntüsü

    Şekil 12: Çözüm Gezgini - AddCustomizationCustomAction

  4. Bu derlemelere bir Başvuru ekleyin:

    1. System.ComponentModel
    2. System.Configuration.Install
    3. Microsoft.VisualStudio.Tools.Applications
    4. Microsoft.VisualStudio.Tools.Applications.ServerDocument
  5. Bu kodu Program.cs veya Program.vb

    using System;
    using System.IO;
    using System.Collections;
    using System.ComponentModel;
    using System.Configuration.Install;
    using Microsoft.VisualStudio.Tools.Applications;
    using Microsoft.VisualStudio.Tools.Applications.Runtime;

    namespace AddCustomizationCustomAction
    {
        [RunInstaller(true)]
        public class AddCustomizations : Installer
        {
            public AddCustomizations() : base() { }

            public override void Install(IDictionary savedState)
            {
                base.Install(savedState);

                //Get the CustomActionData Parameters
                string documentLocation = Context.Parameters.ContainsKey("documentLocation") ? Context.Parameters["documentLocation"] : String.Empty;
                string assemblyLocation = Context.Parameters.ContainsKey("assemblyLocation") ? Context.Parameters["assemblyLocation"] : String.Empty;
                string deploymentManifestLocation = Context.Parameters.ContainsKey("deploymentManifestLocation") ? Context.Parameters["deploymentManifestLocation"] : String.Empty;
                Guid solutionID = Context.Parameters.ContainsKey("solutionID") ? new Guid(Context.Parameters["solutionID"]) : new Guid();

                string newDocLocation = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), Path.GetFileName(documentLocation));

                try
                {
                    //Move the file and set the Customizations
                    if (Uri.TryCreate(deploymentManifestLocation, UriKind.Absolute, out Uri docManifestLocationUri))
                    {
                        File.Move(documentLocation, newDocLocation);
                        ServerDocument.RemoveCustomization(newDocLocation);
                        ServerDocument.AddCustomization(newDocLocation, assemblyLocation,
                                                        solutionID, docManifestLocationUri,
                                                        true, out string[] nonpublicCachedDataMembers);
                    }
                    else
                    {
                        LogMessage("The document could not be customized.");
                    }
                }
                catch (ArgumentException)
                {
                    LogMessage("The document could not be customized.");
                }
                catch (DocumentNotCustomizedException)
                {
                    LogMessage("The document could not be customized.");
                }
                catch (InvalidOperationException)
                {
                    LogMessage("The customization could not be removed.");
                }
                catch (IOException)
                {
                    LogMessage("The document does not exist or is read-only.");
                }
            }

            public override void Rollback(IDictionary savedState)
            {
                base.Rollback(savedState);
                DeleteDocument();
            }
            public override void Uninstall(IDictionary savedState)
            {
                base.Uninstall(savedState);
                DeleteDocument();
            }
            private void DeleteDocument()
            {
                string documentLocation = Context.Parameters.ContainsKey("documentLocation") ? Context.Parameters["documentLocation"] : String.Empty;

                try
                {
                    File.Delete(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), Path.GetFileName(documentLocation)));
                }
                catch (Exception)
                {
                    LogMessage("The document doesn't exist or is read-only.");
                }
            }
            private void LogMessage(string Message)
            {
                if (Context.Parameters.ContainsKey("LogFile"))
                {
                    Context.LogMessage(Message);
                }
            }

            static void Main() { }
            }
    }

Özelleştirmeyi belgeye eklemek için VSTO belge düzeyi çözümünüzün çözüm kimliğine sahip olmanız gerekir. Bu değer Visual Studio proje dosyasından alınır.

Çözüm kimliğini almak için

  1. Oluştur menüsünde Çözüm Oluştur'a tıklayarak belge düzeyi çözümü derleyin ve çözüm kimliği özelliğini proje dosyasına ekleyin.

  2. Çözüm Gezgini ExcelWorkbookProject belge düzeyi projesine sağ tıklayın

  3. Proje dosyasına Visual Studio'dan erişmek için KaldırProje'ye tıklayın.

    Excel Belge Çözümünü Kaldırma Çözüm Gezgini ekran görüntüsü

    Şekil 13: Excel Belge Çözümünü Kaldırma

  4. Çözüm Gezgini ExcelWorkbookProject'e sağ tıklayın ve DüzenleExcelWorkbookProject.vbproj veya ExcelWorkbookProject.csproj'u Düzenle'ye tıklayın.

  5. ExcelWorkbookProject düzenleyicisinde, PropertyGroup öğesinin içindeki SolutionID öğesini bulun.

  6. Bu öğenin GUID değerini kopyalayın.

    SolutionID'yi alma

    Şekil 14: Çözüm Kimliğini Alma

  7. Çözüm Gezgini ExcelWorkbookProject'e sağ tıklayın ve Projeyi Yeniden Yükle'ye tıklayın.

  8. ExcelWorkbookProject düzenleyicisini kapatmak için görüntülenen iletişim kutusunda Evet'e tıklayın.

  9. Çözüm Kimliği, Özel Yükleme Eyleminde kullanılır.

Son adım, Yükleme ve Kaldırma adımları için özel eylemi yapılandırmaktır.

Kurulum projesini yapılandırmak için

  1. Çözüm Gezgini ExcelWorkbookSetup'a sağ tıklayın, Ekle'yi genişletin ve Proje Çıktısı'na tıklayın.

  2. Proje Çıktı Grubu Ekle iletişim kutusundaki Proje listesinde EkleÖzelleştirmeÖzelleştirmeÖzelLeştirme'ye tıklayın.

  3. Birincil Çıkış'ı seçin ve tamam'a tıklayarak iletişim kutusunu kapatın ve özel eylemi içeren derlemeyi kurulum projesine ekleyin.

    Belge Bildirimi Özel Eylemi - Proje Çıktı Grubu Ekle penceresinin ekran görüntüsü

    Şekil 15: Belge Bildirimi Özel Eylemi - Proje Çıktı Grubu Ekle

  4. Çözüm Gezgini ExcelWorkbookSetup'a sağ tıklayın.

  5. Görünüm'ü genişletin ve Özel Eylemler'e tıklayın.

  6. Özel Eylemler(ExcelWorkbookSetup) düzenleyicisinde, Özel Eylemler'e sağ tıklayın ve Özel Eylem Ekle'ye tıklayın.

  7. Project'te Öğe Seç iletişim kutusundaki Görünüm listesinde Uygulama Klasörü'ne tıklayın. AddCustomizationCustomAction(etkin) içinden Birincil Çıkış'ı seçin ve Özel eylemi Yükle adımına eklemek için Tamam'a tıklayın.

  8. Yükle düğümü altında, AddCustomizationCustomAction(Active)'den Birincil çıkış'a sağ tıklayın ve Yeniden Adlandır'a tıklayın. Özel eylemi Belgeyi Belgelerim'e kopyalayın ve özelleştirme ekleyin.

  9. Kaldır düğümü altında, AddCustomizationCustomAction(Etkin) içinden Birincil çıkış'a sağ tıklayın ve Yeniden Adlandır'a tıklayın. Özel eylemi Belgeler klasöründen belgeyi kaldır olarak adlandırın.

    Belge Bildirimi Özel Eylemler penceresinin ekran görüntüsü

    Şekil 16: Belge Bildirimi Özel Eylemleri

  10. Özel Eylemler(ExcelWorkbookSetup) düzenleyicisinde Belgeyi Belgelerim'e kopyala'ya sağ tıklayın, özelleştirme ekleyin ve Özellikler Penceresi'ne tıklayın.

  11. CustomActionData Özellikleri penceresinde özelleştirme DLL'sinin konumunu, dağıtım bildirimini ve Microsoft Office belgesinin konumunu girin. SolutionID de gereklidir.

  12. Herhangi bir kurulum hatasını bir dosyaya kaydetmek istiyorsanız, LogFile parametresini ekleyin. s

    /assemblyLocation="[INSTALLDIR]ExcelWorkbookProject.dll" /deploymentManifestLocation="[INSTALLDIR]ExcelWorkbookProject.vsto" /documentLocation="[INSTALLDIR]ExcelWorkbookProject.xlsx" /solutionID="Your Solution ID" /LogFile="[TARGETDIR]Setup.log"
    

    Belgeyi Belgelerime Kopyalama özel eyleminin ekran görüntüsü Özellikler penceresi

    Şekil 17: Belgeyi Belgelerime Kopyalamak için Özel Eylem

  13. Kaldırma için Özel Eylem belgenin adına ihtiyaç duyar; CustomActionData'da aynı documentLocation parametresini kullanarak bunu sağlayabilirsiniz

    /documentLocation="[INSTALLDIR]ExcelWorkbookProject.xlsx"
    
  14. ExcelWorkbookSetup projesini derleyin ve dağıtın.

  15. Belgelerim klasörüne bakın ve ExcelWorkbookProject.xlsx dosyasını açın.

Ek Kaynaklar

Nasıl yapılır: Office Çalışma Zamanı için Visual Studio Araçları Yükleme

Office Birincil Birlikte Çalışma Derlemeleri

VSTO Eklentileri için kayıt defteri girdileri

Özel Belge Özelliklerine Genel Bakış

Windows Kayıt Defteri'nde Form Bölgelerini Belirtme

Belgelere Güven Verme

Yazarlar Hakkında

Wouter van Vugt, Office Open XML teknolojilerine sahip bir Microsoft MVP'dir ve SharePoint, Microsoft Office ve ilgili .NET teknolojileriyle Office İş Uygulaması'ler (OBA) oluşturmaya odaklanan bağımsız bir danışmandır. Wouter, MSDN gibi geliştirici topluluğu sitelerine sık sık katkıda bulunur. Open XML: Explained e-book adlı satırda birçok teknik inceleme ve makale yayımlamıştır. Wouter, çeşitli kanallar aracılığıyla son teknoloji teknik içerik sunmaya odaklanan Bir Hollandalı şirket olan Code-Counsel'ın kurucusudur. Blogunu okuyarak Wouter hakkında daha fazla bilgi edinebilirsiniz.

Ted Pattison, SharePoint MVP'sinin yazarı, eğitmeni ve Ted Pattison Group'un kurucusudur. 2005 sonbaharında Ted, Windows SharePoint Services 3.0 ve Microsoft Office SharePoint Server 2007 için Ascend geliştirici eğitim müfredatını yazmak üzere Microsoft Geliştirici Platformu Evangelizm grubu tarafından işe alınmıştı. O zamandan beri, Ted tamamen profesyonel geliştiricileri SharePoint 2007 teknolojileri konusunda eğitmek üzerine odaklanmıştır. Ted, Microsoft Press için Windows SharePoint Services 3.0'ın İçinde başlıklı ve sharepoint'in iş çözümleri oluşturmak için geliştirme platformu olarak nasıl kullanılacağına odaklanan bir kitap yazmayı bitirdi. Ted, MSDN Dergisi için Office Space başlıklı geliştirici odaklı bir sütun da yazar.