2012-06-06 20 views
11

Zaten büyük bir Office uygulama düzeyinde eklenti geliştirdim ve bir çekicilik gibi çalışıyor, ancak teknik temeli anlamakta sorun yaşıyorum. VSTO vs. Primary Interop Assemblies, fark nedir?

  1. Yani tam olarak ne VSTO ve için PIA iyi?
  2. VSTO, Visual Studio için uygun bir proje türü sağlar ve bu nedir?
  3. Primary ınterop Assemblies (PIA) Büro Nesne Modeli erişim için sargının sadece bir çeşit musunuz?
  4. İkisi de bildiğimden daha fazla şey ve özellik sunuyor mu? PIA ile ofis alt sistemi içine kanca (çözelti yükleyici) içerir

cevap

10

VSTO is the application runtime. Office'in oluşturulduğu yönetilmeyen COM API'sı (IDTExtensibility2) çevresinde PIAs are wrappers. PIA'lar yönetilen erişim sağlar ve VSTO çalışma zamanının üzerinde çalışır.

VSTO, bağımlılıkları algılamak ve Eklentinizi çalışma zamanında yüklemek için gereken deployment manifest'u oluşturan proje türleriyle birlikte gelir.

COM nesne modeline PIAs provide managed access

, ama aynı zamanda supports unmanaged access size çözüm yüklenir şekli üzerinde daha fazla kontrol istesin (dolayısıyla her zaman VSTO çalışma zamanını var, ama her zaman değil PIA).

Bu MSDN link provides a great overview of the evolution of PIAs and VSTO uzakta IDtExtensibility2 den

+0

@SilverNinja VSTO PIA yüklü olması gerekmektedir başka yükleme seçeneği (Pıa ait dışında) hangi? – JohnZaj

+1

VSTO 2010'u kullanıyorsanız PIA'leri yüklemeniz gerekmez. Varsayılan olarak, [birlikte çalışma türleri, eklenti topluluğunuza katıştırılır] (http://msdn.microsoft.com/en-us/library/ee317478.aspx). Dahil ettiğiniz her ofis montajı için ** Embed Interop Types ** işaretini değiştirerek bu davranışı değiştirebilirsiniz. – SliverNinja

+1

SilverNinja'yı onayladığınız için teşekkür ederiz. Durumun böyle olduğunu düşündüm. Bir eklentide gömülü olan etkileşimleri görüyorum. Diğer tüm derlemelerin Embed Interop Types bayrağı kümesine sahip olduğundan emin olmamız gerekiyor. – JohnZaj

İlgili konular