2012-06-06 12 views
11

Ya desarrollé un gran complemento de nivel de aplicación de Office y funciona como un encanto, pero tengo problemas para entender la base técnica.VSTO vs. Ensambles primarios de interoperabilidad, ¿cuál es la diferencia?

  1. Entonces, ¿qué son VSTO y el PIA de bueno para?
  2. ¿VSTO acaba de proporcionar un tipo de proyecto adecuado para Visual Studio y eso es todo?
  3. ¿Están Ensamblados primarios de interoperabilidad (PIA) simplemente algún tipo de envoltorio para acceder al modelo de objeto de oficina ?
  4. ¿Ambos proporcionan más cosas y funciones de las que yo conozco?

Respuesta

10

VSTO is the application runtime que proporciona ganchos (solución loader) en el subsistema de oficina a través de PIA. PIAs are wrappers alrededor de la API COM no administrada (IDTExtensibility2) desde la que está compilada Office. Los PIA brindan acceso administrado y se ejecutan por encima del tiempo de ejecución de VSTO.

VSTO viene con tipos de proyectos que compilan el deployment manifest necesarios para detectar dependencias y cargar su complemento en tiempo de ejecución.

El PIAs provide managed access al objeto-modelo COM, pero también supports unmanaged access Si desea más control sobre cómo se carga la solución (por lo tanto, siempre hay tiempo de ejecución VSTO, pero no siempre los PIA).

Este MSDN link provides a great overview of the evolution of PIAs and VSTO lejos de IDtExtensibility2 que es otra opción de carga (fuera del PIA de)

+0

@SilverNinja qué VSTO requieren la instalación de PIA? – JohnZaj

+1

Si está usando VSTO 2010 no necesita instalar los PIA. De forma predeterminada, los [tipos de interoperabilidad están incrustados en su ensamblaje de complemento] (http://msdn.microsoft.com/en-us/library/ee317478.aspx). Puede alternar este comportamiento cambiando el indicador ** Insertar tipos de interoperabilidad ** para cada ensamblaje de oficina que incluya. – SliverNinja

+1

Gracias por confirmar SilverNinja. Pensé que este era el caso. Veo las interoperaciones incrustadas en un complemento. Solo necesito asegurarme de que todos los demás ensamblajes tengan el indicador Insertar tipos de interpolación establecidos. – JohnZaj

Cuestiones relacionadas