Comparación del manifiesto de solo complemento con el manifiesto unificado para Microsoft 365

Este artículo está pensado para ayudar a los lectores que están familiarizados con el manifiesto de solo complemento a comprender el manifiesto unificado mediante la comparación de los dos. Los lectores también deben ver complementos de Office con el manifiesto unificado para Microsoft 365.

Nota:

El manifiesto unificado actualmente solo admite complementos de Outlook y solo en Office vinculado a una suscripción de Microsoft 365 e instalado en Windows, en un dispositivo móvil o en Outlook en la Web. Estamos trabajando en ampliar la compatibilidad con Excel, PowerPoint y Word, así como con Outlook en Mac y con versiones perpetuas de Office.

Esquemas y puntos generales

Solo hay un esquema para el manifiesto unificado, a diferencia del manifiesto de solo complemento que tiene un total de siete esquemas.

Asignación conceptual de los manifiestos unificados y de solo complemento

En esta sección se describe el manifiesto unificado para los lectores que están familiarizados con el manifiesto de solo complemento. Algunos puntos a tener en cuenta:

  • El manifiesto unificado tiene formato JSON.

  • JSON no distingue entre el atributo y el valor de elemento, como hace XML. Normalmente, el JSON que se asigna a un elemento XML convierte tanto el valor del elemento como cada uno de los atributos en una propiedad secundaria. En el ejemplo siguiente se muestra algún marcado XML y su equivalente JSON.

    <MyThing color="blue">Some text</MyThing>
    
    "myThing" : {
        "color": "blue",
        "text": "Some text"
    }
    
  • Hay muchos lugares en el manifiesto de solo complemento donde un elemento con un nombre plural tiene elementos secundarios con la versión singular del mismo nombre. Por ejemplo, el marcado para configurar un menú personalizado incluye un <elemento Items> que puede tener varios <elementos secundarios Item> . El equivalente JSON de estos elementos plurales es una propiedad con una matriz como su valor. Los miembros de la matriz son objetos anónimos, no propiedades denominadas “item” o “item1”, “item2”, etc. A continuación se muestra un ejemplo.

    "items": [
        {
            -- markup for a menu item is here --
        },
        {
            -- markup for another menu item is here --
        }
    ]
    

Estructura de nivel superior

El nivel raíz del manifiesto unificado, que corresponde aproximadamente al <elemento OfficeApp> del manifiesto de solo complemento, es un objeto anónimo.

Los elementos secundarios de <OfficeApp> se dividen normalmente en dos categorías nocionales. El <elemento VersionOverrides> es una categoría. El otro consta de todos los demás elementos secundarios de <OfficeApp>, a los que se hace referencia colectivamente como manifiesto base. Por lo tanto, el manifiesto unificado también tiene una división similar. Hay una propiedad "extensiones" de nivel superior que corresponde aproximadamente en sus propósitos y propiedades secundarias al <elemento VersionOverrides> . El manifiesto unificado también tiene más de 10 propiedades de nivel superior que sirven colectivamente a los mismos propósitos que el manifiesto base del manifiesto de solo complemento. Estas otras propiedades se pueden considerar colectivamente como el manifiesto base del manifiesto unificado.

Manifiesto base

Las propiedades de manifiesto base especifican características del complemento que se espera que tenga cualquier tipo de extensión de Microsoft 365. Esto incluye pestañas y extensiones de mensajes de Teams, no solo complementos de Office. Estas características incluyen un nombre público y un identificador único. En la tabla siguiente se muestra una asignación de algunas propiedades críticas de nivel superior del manifiesto unificado a los elementos XML del manifiesto actual, donde el principio de asignación es el propósito del marcado.

Propiedad JSON Objetivo Elementos XML Comentarios
“$schema” Identifica el esquema del manifiesto. atributos de <OfficeApp> y <VersionOverrides> Ninguna
“id” GUID del complemento. <Id> Ninguna
“version” La versión del complemento. <Versión> Ninguna
“manifestVersion” Versión del esquema del manifiesto. atributos de <OfficeApp> Ninguna
“name” Nombre público del complemento. <DisplayName> Ninguna
“description” Descripción pública del complemento. <Descripción> Ninguna
“accentColor” Ninguna Ninguna Esta propiedad no tiene ningún equivalente en el manifiesto de solo complemento y no se usa en el manifiesto unificado. Pero debe estar presente.
"developer" Identifica al desarrollador del complemento. <ProviderName> Ninguna
“localizationInfo” Configura la configuración regional predeterminada y otras configuraciones regionales admitidas. <DefaultLocale> e <Override> Ninguna
“webApplicationInfo” Identifica la aplicación web del complemento como se conoce en Azure Active Directory. <WebApplicationInfo> En el manifiesto de solo complemento, el <elemento WebApplicationInfo> está dentro de< VersionOverrides>, no del manifiesto base.
“authorization” Identifica los permisos de Microsoft Graph que necesita el complemento. <WebApplicationInfo> En el manifiesto de solo complemento, el <elemento WebApplicationInfo> está dentro de< VersionOverrides>, no del manifiesto base.

Los <elementos Hosts>, <Requirements> y <ExtendedOverrides> forman parte del manifiesto base del manifiesto de solo complemento. Pero los conceptos y los propósitos asociados a estos elementos se configuran dentro de la propiedad "extensiones" del manifiesto unificado.

Propiedad "extensiones"

La propiedad "extensiones" del manifiesto unificado representa principalmente las características del complemento que no serían pertinentes para otros tipos de extensiones de Microsoft 365. Por ejemplo, las aplicaciones de Office que extiende el complemento (como Excel, PowerPoint, Word y Outlook) se especifican dentro de la propiedad "extensiones", al igual que las personalizaciones de la cinta de opciones de la aplicación de Office. Los propósitos de configuración de la propiedad "extensiones" coinciden estrechamente con los <del elemento VersionOverrides> en el manifiesto de solo complemento.

Nota:

La <sección VersionOverrides> del manifiesto de solo complemento tiene un sistema de "salto doble" para muchos recursos de cadena. Las cadenas, incluidas las direcciones URL, se especifican y se les asigna un identificador en el <elemento secundario Resources> de <VersionOverrides>. Los elementos que requieren una cadena tienen un resid atributo que coincide con el identificador de una cadena en el <elemento Resources> . La propiedad "extensiones" del manifiesto unificado simplifica las cosas mediante la definición de cadenas directamente como valores de propiedad. No hay nada en el manifiesto unificado que sea equivalente al <elemento Resources> .

En la tabla siguiente se muestra una asignación de algunas propiedades secundarias de alto nivel de la propiedad "extensiones" del manifiesto unificado a los elementos XML del manifiesto actual. La notación de puntos se usa para hacer referencia a las propiedades secundarias.

Nota:

Esta tabla contiene solo algunas propiedades descendientes representativas seleccionadas de "extensiones". No es una lista exhaustiva de todas las propiedades secundarias de "extensiones". Para obtener la referencia completa del manifiesto unificado, consulte Manifiesto unificado para Microsoft 365. Para obtener la referencia de manifiesto que incluye todas las características de versión preliminar más recientes, consulte Versión preliminar del desarrollador público para el manifiesto unificado para Microsoft 365.

Propiedad JSON Objetivo Elementos XML Comentarios
“requirements.capabilities” Identifica los conjuntos de requisitos que debe instalar el complemento. que el complemento debe ser instalable. <Requisitos> y <conjuntos> Ninguna
“requirements.scopes” Identifica las aplicaciones Office en las que se puede instalar el complemento. <Hosts> Ninguna
“cintas de opciones” Las cintas de opciones que personaliza el complemento. <Hosts>, ExtensionPoints y varios elementos *FormFactor La propiedad “ribbons” es una matriz de objetos anónimos que combinan los propósitos de estos tres elementos. Consulte la tabla de “cintas de opciones”.
"alternativas" Especifica la compatibilidad con versiones anteriores con un complemento COM equivalente, XLL o ambos. <EquivalentAddins> Consulte EquivalentAddins: consulte también para obtener información general.
“runtimes” Configura los tiempos de ejecución incrustados que usa el complemento, incluidos varios tipos de complementos que tienen poca o ninguna interfaz de usuario, como complementos personalizados de solo función y comandos de función. <Tiempos de ejecución>. <FunctionFile> y <ExtensionPoint> (de tipo CustomFunctions) Ninguna
“autoRunEvents” Este punto de extensión agrega un controlador de eventos para un evento especificado. <ExtensionPoint> (de tipo LaunchEvent) Ninguna

Tabla de “cintas de opciones”

En la tabla siguiente se asignan las propiedades secundarias de los objetos secundarios anónimos de la matriz “ribbons” a los elementos XML del manifiesto actual.

Propiedad JSON Objetivo Elementos XML Comentarios
“contexta” Especifica las superficies de comandos que personaliza el complemento. Varios elementos *CommandSurface , como PrimaryCommandSurface y MessageReadCommandSurface Ninguno.
“tabs” Configura pestañas personalizadas de la cinta de opciones. <CustomTab> Los nombres y la jerarquía de las propiedades descendientes de "pestañas" coinciden estrechamente con los descendientes de <CustomTab>.
"fixedControls" (versión preliminar para desarrolladores) Configura y agrega el botón de un complemento integrado de informes de correo no deseado a la cinta de opciones de Outlook. <Elemento secundario Control> de <ReportPhishingCustomization> Ninguno.
"spamPreProcessingDialog" (versión preliminar para desarrolladores) Configura el cuadro de diálogo de preprocesamiento que se muestra después de seleccionar el botón de un complemento de informes de correo no deseado en la cinta de opciones de Outlook. <Elemento secundario PreProcessingDialog> de <ReportPhishingCustomization> Ninguno.

Para obtener un manifiesto unificado de ejemplo completo, consulte Manifiesto unificado de ejemplo.

Pasos siguientes