2012-06-06 3 views
11

Я уже разработал большую надстройку на уровне приложений Office, и она работает как шарм, но у меня проблемы с пониманием технической основы.VSTO vs. Primary Interop Assemblies, какая разница?

  1. Так что же VSTO и PIAs хорошо?
  2. Действительно ли VSTO предоставляет только тип проекта для Visual Studio и все?
  3. Являются ли сборщики первичного взаимодействия (PIA) только какой-то оберткой для доступа к объектной модели ?
  4. Оба они предоставляют больше вещей и функций, чем я знаю?

ответ

10

VSTO is the application runtime, который обеспечивает крюки (решение загрузчика) в подсистеме Управление с помощью PIA. PIAs are wrappers вокруг неуправляемого COM API (IDTExtensibility2), из которого изготовлен офис. PIA обеспечивают управляемый доступ и работают над временем выполнения VSTO.

VSTO поставляется с типами проектов, которые создают deployment manifest, необходимые для обнаружения зависимостей и загрузки надстройки во время выполнения.

PIAs provide managed access к COM-объекта-модели, но также supports unmanaged access если вы хотите больше контроля над тем, как вы загрузили решение (поэтому у вас всегда есть VSTO выполнения, но не всегда PIAs).

Это MSDN link provides a great overview of the evolution of PIAs and VSTO от IDtExtensibility2, который является еще одним вариантом загрузки (вне ПОО)

+0

@SilverNinja делает VSTO требует установки PIA? – JohnZaj

+1

Если вы используете VSTO 2010, вам не нужно устанавливать PIA. По умолчанию типы [interop] встроены в вашу сборку надстройки] (http://msdn.microsoft.com/en-us/library/ee317478.aspx). Вы можете переключить это поведение, изменив флаг ** Embed Interop Types ** для каждой входящей сборки офиса. – SliverNinja

+1

Спасибо за подтверждение SilverNinja. Я думал, это так. Я вижу interops, встроенный в надстройку. Мне просто нужно убедиться, что все другие сборки имеют флаг Embed Interop Types. – JohnZaj

Смежные вопросы