VSTO и Primary Interop Assemblies, какая разница?

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

  • Так что же такое VSTO и PIAs?
  • Предоставляет ли VSTO правильный тип проекта для Visual Studio и что он?
  • Являются ли Primary Interop Assemblies (PIA) только какой-то оболочкой для доступа к объектной модели Office?
  • Оба из них предоставляют больше вещей и функций, чем я знаю?

Ответ 1

VSTO - это среда выполнения приложений, которая предоставляет крючки (загрузчик решений) в подсистеме Office через PIA. PIA - это обертки вокруг неуправляемого COM API (IDTExtensibility2), из которого создается Office. PIA обеспечивают управляемый доступ и работают выше среды выполнения VSTO.

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

PIA обеспечивают управляемый доступ к объектной модели COM, но также поддерживает неуправляемый доступ. вам нужно больше контролировать, как загружается ваше решение (следовательно, у вас всегда есть время выполнения VSTO, но не всегда PIA).

Эта ссылка MSDN предоставляет отличный обзор эволюции PIA и VSTO от IDTExtensibility2 который является другим вариантом загрузки (за пределами PIA).