Comparteix a través de


Implementación de una solución VSTO con Windows Installer

Resumen

Obtenga información sobre cómo implementar un complemento de Microsoft Visual Studio Tools para Office (VSTO) o una solución de nivel de documento mediante un proyecto de Instalador de Visual Studio.

Wouter van Vugt, asesor de código

Ted Pattison, Ted Pattison Group

Microsoft actualizó este artículo con permiso de los autores originales.

Es aplicable a: Visual Studio Tools para Office, Microsoft Office, Microsoft Visual Studio.

Puede desarrollar una solución VSTO e implementarla mediante un paquete de Windows Installer. En esta explicación se incluyen los pasos para implementar un complemento de Office sencillo.

Métodos de implementación

ClickOnce se puede usar fácilmente para crear configuraciones para sus complementos y soluciones. Sin embargo, no puede instalar complementos que requieran privilegios administrativos como complementos de nivel de máquina.

Los complementos que requieren privilegios administrativos se pueden instalar mediante Windows Installer, pero requiere más esfuerzo para crear la configuración.

Para obtener información general sobre cómo implementar una solución VSTO mediante ClickOnce, consulte Implementación de una solución de Office mediante ClickOnce.

Implementación de soluciones de Office destinadas al entorno de ejecución de VSTO

Los paquetes de ClickOnce y Windows Installer deben realizar las mismas tareas rudimentarias al instalar una solución de Office.

  1. Instale los componentes de requisitos previos en el ordenador del usuario.
  2. Implemente los componentes específicos para la solución.
  3. Para los complementos, cree entradas de registro.
  4. Confíe en la solución para permitir que se ejecute.

Componentes de requisitos previos necesarios en el equipo de destino

Esta es la lista de software que se debe instalar en el equipo para ejecutar soluciones de VSTO:

  • Microsoft Office 2010 o superior.
  • Microsoft .NET Framework 4 o superior.
  • Runtime de Microsoft Visual Studio 2010 Tools para Office. El entorno de ejecución proporciona un entorno que administra complementos y soluciones de nivel de documento. Una versión del entorno de ejecución se distribuye con Microsoft Office, pero es posible que quiera redistribuir una versión específica con el complemento.
  • Los ensamblados de interoperabilidad primarios para Microsoft Office, si no usa tipos de interoperabilidad insertados.
  • Cualquier ensamblado de utilidades al que hacen referencia los proyectos.

Componentes específicos para la solución

El paquete del instalador debe instalar estos componentes en el ordenador del usuario:

  • El documento de Microsoft Office, si crea una solución de nivel de documento.
  • El ensamblado de personalización y cualquier ensamblado que requiera.
  • Componentes adicionales, como archivos de configuración.
  • El manifiesto de aplicación (.manifest).
  • El manifiesto de implementación (.vsto).

Entradas del registro para complementos

Microsoft Office usa entradas de registro para buscar y cargar complementos. Estas entradas de registro se deben crear como parte del proceso de implementación. Para obtener más información sobre estas entradas de registro, consulte Entradas de registro para complementos de VSTO.

Los complementos de Outlook que muestran áreas de formulario personalizadas requieren entradas adicionales de registro que permitan identificar las secciones del formulario. Para obtener más información sobre las entradas de registro, consulte Entradas de registro para las secciones de formulario de Outlook.

Las soluciones de nivel de documento no requieren ninguna entrada de registro. En su lugar, las propiedades del documento se usan para ubicar la personalización. Para obtener más información acerca de estas propiedades, consulte Introducción a las propiedades de documento personalizadas.

Confiar en la solución VSTO

Para que se ejecute una personalización, la máquina debe confiar en una solución. El complemento puede ser de confianza firmando el manifiesto con un certificado, creando una relación de confianza con una lista de inclusión o instalándolo en una ubicación de confianza en el equipo.

Para obtener más información sobre cómo obtener un certificado para la firma, consulte Implementación de ClickOnce y Authenticode. Para obtener más información sobre las soluciones de confianza, consulte Confiar en soluciones de Office mediante listas de inclusión. Puede agregar una entrada de lista de inclusión con una acción personalizada en el archivo de Windows Installer. Para obtener más información sobre cómo habilitar la lista de inclusión, consulte Cómo: Configurar la seguridad de una lista de inclusión.

Si no se usa ninguna opción, se muestra una consulta de confianza al usuario para que decida si confía en la solución.

Para obtener más información sobre la seguridad relacionada con las soluciones de nivel de documento, consulte Concesión de confianza a documentos.

Creación de un instalador básico

Las plantillas de proyecto de instalación e implementación se incluyen con la extensión Protectos de instalador de Microsoft Visual Studio que está disponible para su descarga.

Para crear un instalador para una solución de Office, deben llevarse a cabo estas tareas:

  • Agregue los componentes de la solución de Office que se implementará.
  • Para complementos de nivel de aplicación, configure las claves de registro.
  • Configure los componentes de requisitos previos para que se puedan instalar en los equipos de los usuarios finales.
  • Configure las condiciones de inicio para comprobar que los componentes de requisitos previos necesarios están disponibles. Las condiciones de inicio se pueden usar para bloquear la instalación si no se instalan todos los requisitos previos necesarios.

El primer paso consiste en crear el proyecto de configuración.

Para crear el proyecto de configuración del complemento

  1. Abra el proyecto de complemento de Office que desea implementar. En este ejemplo, se usa un complemento de Excel denominado ExcelAddIn.
  2. Con el proyecto de Office abierto, en el menú Archivo, expanda Añadir y haga clic en Nuevo proyecto para agregar un nuevo proyecto.
  1. En el cuadro de diálogo Añadir un nuevo proyecto, seleccione la plantilla Proyecto de configuración.
  2. Haga clic en Siguiente.
  1. En el cuadro Nombre, escriba OfficeAddInSetup.
  1. Haga clic en Crear para crear el nuevo proyecto de configuración.

Visual Studio abre el Explorador del sistema de archivos para el nuevo proyecto de configuración. El explorador del sistema de archivos permite agregar archivos al proyecto de configuración.

Captura de pantalla del Explorador del sistema de archivos para el proyecto de configuración

Figura 1: Explorador del sistema de archivos para el proyecto de configuración

El proyecto de configuración debe implementar el ExcelAddIn. Para configurar el proyecto de configuración para esta tarea, agregue la salida del proyecto ExcelAddIn al proyecto de configuración.

Para agregar la salida del proyecto ExcelAddIn

  1. En el Explorador de soluciones, haga clic con el botón derecho en OfficeAddInSetup, haga clic en Añadir y, a continuación, en Salida del proyecto.

  2. En el cuadro de diálogo Añadir grupo de salida del proyecto, seleccione ExcelAddIn en la lista de proyectos y Salida principal.

  3. Haga clic en Aceptar para agregar la salida del proyecto al proyecto de configuración.

    Captura de pantalla del cuadro de diálogo Añadir grupo de salida del proyecto de configuración

    Figura 2: Cuadro de diálogo Añadir grupo de salida del proyecto de configuración

El proyecto de configuración debe implementar el manifiesto de implementación y el manifiesto de aplicación. Añada estos dos archivos al proyecto de configuración como archivos independientes desde la carpeta de salida del proyecto ExcelAddIn.

Para añadir los manifiestos de implementación y de aplicación

  1. En el Explorador de soluciones, haga clic con el botón derecho en OfficeAddInSetup, haga clic en Añadir y haga clic en Archivo.

  2. En el cuadro de diálogo Añadir archivos , vaya al directorio de salida de ExcelAddIn. Normalmente el directorio de resultados es la subcarpeta bin\release del directorio raíz del proyecto, según la configuración de compilación seleccionada.

  3. Seleccione los archivos ExcelAddIn.vsto y ExcelAddIn.dll.manifest y haga clic en Abrir para agregar estos dos archivos al proyecto de configuración.

    Captura de pantalla de los manifiestos de aplicación e implementación en el Explorador de soluciones

    Figura 3: Manifiestos de aplicación e implementación para el complemento en el Explorador de soluciones

Al hacer referencia a ExcelAddIn se incluyen todos los componentes que requiere ExcelAddIn. Estos componentes deben excluirse e implementarse mediante paquetes de requisitos previos para permitir que se registren correctamente. Además, los Términos de licencia de software deben mostrarse y aceptarse antes de que comience la instalación.

Para excluir las dependencias del proyecto ExcelAddIn

  1. En el Explorador de soluciones, en el nodo OfficeAddInSetup, seleccione todos los elementos de dependencia debajo del elemento Dependencias detectadas, excepto Microsoft .NET Framework o cualquier ensamblado que termine con *.Utilities.dll. Los ensamblados de utilidades están diseñados para implementarse junto con la aplicación.

  2. Haga clic con el botón derecho en el grupo y seleccione Propiedades.

  3. En la ventana Propiedades, cambie la propiedad Excluir a Verdadero para excluir los ensamblados dependientes del proyecto de configuración. Asegúrese de no excluir ningún ensamblado de utilidades.

    Captura de pantalla del Explorador de soluciones que muestra las dependencias que se van a excluir

    Figura 4: Exclusión de dependencias

Puede configurar el paquete de Windows Installer para instalar componentes de requisitos previos agregando un programa de instalación, también conocido como cargador de arranque. Este programa de instalación puede instalar los componentes de los requisitos previos, un proceso denominado arranque.

Para ExcelAddIn, estos requisitos previos deben instalarse para que el complemento se pueda ejecutar correctamente:

  • La versión de Microsoft .NET Framework a la que se destina la solución de Office.
  • Herramientas de Microsoft Visual Studio 2010 para Office Runtime.

Configurar los componentes dependientes como requisitos previos

  1. En el Explorador de soluciones, haga clic con el botón derecho en el proyecto OfficeAddInSetup y seleccione Propiedades.

  2. Aparecerá el cuadro de diálogo Páginas de propiedades de OfficeAddInSetup.

  3. Haga clic en el botón Requisitos previos.

  4. En el cuadro de diálogo Requisitos previos, seleccione la versión correcta de .NET Framework y de Microsoft Visual Studio Tools para Office Runtime.

    Captura de pantalla del cuadro de diálogo Requisitos previos

    Figura 5: Cuadro de diálogo de requisitos previos

    Nota:

    Algunos de los paquetes de requisitos previos configurados en el proyecto de configuración de Visual Studio dependen de la configuración de compilación seleccionada. Debe seleccionar los componentes de requisitos previos adecuados para cada configuración de compilación que use.

Microsoft Office busca complementos mediante claves de registro. Las claves del hive HKEY_CURRENT_USER se usan para registrar el complemento para cada usuario individual. Las claves del hive HKEY_LOCAL_MACHINE se usan para registrar el complemento para todos los usuarios de la máquina. Para obtener más información sobre las claves de registro, consulte Entradas de registro para complementos de VSTO.

Configuración del registro

  1. En el Explorador de soluciones, haga clic con el botón derecho en OfficeAddInSetup.

  2. Expanda la Vista.

  3. Haga clic en Registro para abrir la ventana del editor del Registro.

  4. En el editor Registry(OfficeAddInSetup), expanda HKEY_LOCAL_MACHINE y, a continuación, Software.

  5. Elimine la clave [Fabricante] que se encuentra en HKEY_LOCAL_MACHINE\Software.

  6. Expanda HKEY_CURRENT_USER y, a continuación, Software.

  7. Elimine la clave [Fabricante] que se encuentra en HKEY_CURRENT_USER\Software.

  8. Para agregar claves de registro para la instalación del complemento, haga clic con el botón derecho en la clave Hive de usuario/máquina, seleccione Nueva clave. Use el texto Software para dar nombre a de la nueva clave. Haga clic con el botón derecho en la clave Software recién creada y cree una nueva clave con el texto Microsoft.

  9. Use un proceso similar para crear toda la jerarquía de claves necesaria para el registro del complemento:

    User/Machine Hive\Software\Microsoft\Office\Excel\Addins\SampleCompany.ExcelAddIn

    El nombre de la empresa se usa a menudo como prefijo para el nombre del complemento para proporcionar unicidad.

  10. Haga clic con el botón derecho en la clave SampleCompany.ExcelAddIn, seleccione Nuevo y haga clic en Valor de cadena. Use el texto Descripción para el nombre.

  11. Use este paso para añadir tres valores más:

    • FriendlyName de tipo String
    • LoadBehavior de tipo DWORD
    • Manifest de tipo String
  12. Haga clic con el botón derecho en el valor Descripción en el editor del Registro y haga clic en Ventana de propiedades. En la ventana Propiedades, escriba Complemento de demostración de Excel para la propiedad Valor.

  13. Seleccione la clave FriendlyName en el editor del Registro. En la ventana Propiedades, cambie la propiedad Valor a Complemento de demostración de Excel.

  14. Seleccione la clave LoadBehavior en el editor del Registro. En la ventana Propiedades, cambie la propiedad Valor a 3. El valor 3 de LoadBehavior indica que el complemento debe cargarse al inicio de la aplicación de host. Para obtener más información sobre el comportamiento de carga, consulte Entradas de registro para complementos de VSTO.

  15. Seleccione la clave Manifiesto en el editor del Registro. En la ventana Propiedades, cambie la propiedad Valor a file:///[TARGETDIR]ExcelAddIn.vsto|vstocal

    Captura de pantalla del Editor del Registro

    Figura 6: Configuración de claves de registro

    El tiempo de ejecución de VSTO usa esta clave de registro para buscar el manifiesto de implementación. El macro [TARGETDIR] será sustituido por la carpeta donde está instalado el complemento. El macro incluirá el carácter final \, por lo que el nombre de archivo del manifiesto de implementación debe ser ExcelAddIn.vsto sin el carácter \. El postfijo vstolocal indica al tiempo de ejecución de VSTO que el complemento debe cargarse desde esta ubicación en lugar de la memoria caché de ClickOnce. Al quitar este postfijo, el tiempo de ejecución copiará la personalización en la memoria caché de ClickOnce.

Advertencia

Debe tener mucho cuidado con el Editor del Registro en Visual Studio. Por ejemplo, si establece accidentalmente DeleteAtUninstall para la clave incorrecta, puede eliminar una parte activa del registro, dejando el equipo del usuario en un estado incoherente, o incluso peor, sin funcionar.

Las versiones de 64 bits de Office usarán el subárbol del Registro de 64 bits para buscar complementos. Para registrar complementos en el subárbol del Registro de 64 bits, la plataforma de destino del proyecto de configuración debe establecerse en solo 64 bits.

  1. Seleccione el proyecto OfficeAddInSetup en el Explorador de soluciones.
  2. Vaya a la ventana Propiedades y configure la propiedad TargetPlatform como x64.

La instalación de un complemento para versiones de 32 y 64 bits de Office requerirá que cree dos paquetes MSI independientes. Uno para 32 bits y otro para 64 bits.

Captura de pantalla de la ventana Propiedades que muestra la plataforma de destino para registrar complementos con Office de 64 bits

Figura 7: Plataforma de destino para registrar complementos con Office de 64 bits

Si el paquete MSI se usa para instalar el complemento o la solución, puede instalarse sin que los requisitos previos necesarios estén instalados. Puede usar condiciones de inicio en MSI para impedir que el complemento se instale si no están instalados los requisitos previos.

Configuración de una condición de inicio para detectar el entorno de ejecución de VSTO

  1. En el Explorador de soluciones, haga clic con el botón derecho en OfficeAddInSetup.

  2. Expanda la Vista.

  3. Haga clic en Condiciones de inicio.

  4. En el editor Condiciones de inicio (OfficeAddInSetup), haga clic con el botón derecho en Requisitos en la máquina de destino y, a continuación, haga clic en Añadir condición de inicio del Registro. Esta condición de búsqueda puede buscar en el Registro una clave que instala el entorno de ejecución de VSTO. A continuación, el valor de la clave está disponible para las distintas partes del instalador a través de una propiedad con nombre. La condición de inicio usa la propiedad definida por la condición de búsqueda para comprobar si hay un valor determinado.

  5. En el editor Condiciones de inicio(OfficeAddInSetup), seleccione la condición de búsqueda Buscar RegistroEntry1, haga clic con el botón derecho en la condición y seleccione la Ventana Propiedades.

  6. En la ventana Propiedades , establezca estas propiedades:

    1. Configure el valor de (Name) como Buscar VSTO 2010 Runtime.
    2. Cambie el valor de Property a VSTORUNTIMEREDIST.
    3. Configure el valor de RegKey a SOFTWARE\Microsoft\VSTO Runtime Setup\v4R
    4. Deje el conjunto de propiedades Raíz como vsdrrHKLM.
    5. Cambie la propiedad Valor a Versión.
  7. En el editor Condiciones de inicio(OfficeAddInSetup), seleccione la condición de inicio Condition1, haga clic con el botón derecho en la condición y seleccione la Ventana Propiedades.

  8. En la ventana Propiedades , establezca estas propiedades:

    1. Defina (Name) como Verificar disponibilidad de VSTO 2010 Runtime.

    2. Cambie el valor de la Condición a VSTORUNTIMEREDIST>="10.0.30319"

    3. Deje en blanco la propiedad InstallURL.

    4. Establezca el mensaje a Visual Studio 2010 Tools para Office Runtime no está instalado Ejecute Setup.exe para instalar el complemento.

      Captura de pantalla de la ventana Propiedades para condición de inicio de verificación de disponibilidad en tiempo de ejecución

      Figura 8: Ventana Propiedades para la condición de inicio de verificación de la disponibilidad en tiempo de ejecución

La condición de inicio anterior comprueba explícitamente la presencia del tiempo de ejecución de VSTO cuando el paquete de arranque lo instala.

Configurar una condición de inicio para detectar el entorno de ejecución de VSTO instalado por Office

  1. En el editor Condiciones de inicio(OfficeAddInSetup), haga clic con el botón derecho en Buscar máquina de destino y después en Añadir búsqueda de registro.

  2. Seleccione la condición de búsqueda Buscar RegistroEntry1, haga clic con el botón derecho en la condición y seleccione la Ventana Propiedades.

  3. En la ventana Propiedades , establezca estas propiedades:

    1. Configure el valor de (Name) como Buscar Office VSTO Runtime.
    2. Cambie el valor de Propiedad a OfficeRuntime.
    3. Configure el valor de RegKey a SOFTWARE\Microsoft\VSTO Runtime Setup\v4.
    4. Deje el conjunto de propiedades Raíz como vsdrrHKLM.
    5. Cambie la propiedad Valor a Versión.
  4. En el editor Condiciones de inicio(OfficeAddInSetup), seleccione la condición de inicio Verificar disponibilitat de VSTO 2010 Runtime definida anteriormente, haga clic con el botón derecho en la condición y seleccione la Ventana Propiedades.

  5. Cambie el valor de la propiedad Condición a VSTORUNTIMEREDIST >="10.0.30319" OR OFFICERUNTIME>="10.0.21022". Los números de versión pueden ser diferentes en función de las versiones del entorno de ejecución que requiere el complemento.

    Captura de pantalla de las ventanas Propiedades para la condición de inicio

    Figura 9: Ventanas Propiedades para comprobar la disponibilidad en tiempo de ejecución a través de la condición de inicio de Redist u Office

Si un complemento tiene como destino .NET Framework 4 o versiones posteriores, los tipos dentro de los ensamblados de interoperabilidad primarios (PIA), a los que se hace referencia, se pueden incrustar en el ensamblado VSTO.

Para comprobar si los tipos de interoperabilidad se incrustarán en el complemento, siga estos pasos:

  1. En el Explorador de soluciones, expanda el nodo Referencias.
  2. Seleccione una de las referencias de PIA, por ejemplo, Office.
  3. Para ver las ventanas de propiedades, presione F4 o seleccione Propiedades en el menú contextual Ensamblados.
  4. Compruebe el valor de la propiedad Tipos de interoperabilidad incrustados.

Si el valor se establece en Verdadero, los tipos se insertan y puede ir directamente a la sección Para compilar el proyecto de configuración.

Para obtener más información, consulte Equivalencia de tipos y tipos de interoperabilidad incrustados.

Para configurar las condiciones de inicio para detectar que para los PIA de Office

  1. En el editor Condiciones de inicio (OfficeAddInSetup), haga clic con el botón derecho en Requisitos en la máquina de destino y, a continuación, haga clic en Añadir condición de inicio del Windows Installer. Esta condición de inicio busca un PIA de Office buscando el identificador de componente específico.

  2. Haga clic con el botón derecho en Buscar Component1 y haga clic en la ventana Propiedades para mostrar las propiedades de la condición de inicio.

  3. En la ventana Propiedades, establezca estas propiedades:

    1. Cambie el valor de la propiedad (Name) a Buscar PIA compartido de Office
    2. Cambie el valor de ComponentID a Id. de componente para el componente de Office que está usando. Puede encontrar la lista de identificadores de componente en la tabla siguiente, por ejemplo {64E2917E-AA13-4CA4-BFFE-EA6EDA3AFCB4}.
    3. Cambie el valor de la propiedad Property a HASSHAREDPIA.
  4. En el editor Condiciones de inicio (OfficeAddInSetup), haga clic con el botón derecho en Condition1 y haga clic en la ventana Propiedades para mostrar las propiedades de la condición de inicio.

  5. Cambie estas propiedades de Condition1:

    1. Cambie (Name) a Comprobar la disponibilidad del PIA compartido de Office.
    2. Cambie la Condition a HASSHAREDPIA.
    3. Deje InstallUrl en blanco.
    4. Cambie el mensaje a Un componente necesario para interactuar con Excel no está disponible. Ejecute setup.exe.

    Captura de pantalla de la ventana Propiedades para condición de inicio de verificación del PIA compartido de Office

    Figura 10: Ventana Propiedades para la condición de inicio de verificación del PIA compartido de Office

Identificadores de componente de los ensamblados de interoperabilidad primarios para Microsoft Office

Ensamblado de interoperabilidad primario Office 2010 Office 2013 Office 2013 (64 bits) Office 2016 Office 2016 (64 bits)
Excel {EA7564AC-C67D-4868-BE5C-26E4FC2223FF} {C8A65ABE-3270-4FD7-B854-50C8082C8F39} {E3BD1151-B9CA-4D45-A77E-51A6E0ED322A} {C845E028-E091-442E-8202-21F596C559A0} {C4ACE6DB-AA99-401F-8BE6-8784BD09F003}
InfoPath {4153F732-D670-4E44-8AB7-500F2B576BDA} {0F825A16-25B2-4771-A497-FC8AF3B355D8} {C5BBD36E-B320-47EF-A512-556B99CB7E41} - -
Outlook {1D844339-3DAE-413E-BC13-62D6A52816B2} {F9F828D5-9F0B-46F9-9E3E-9C59F3C5E136} {7824A03F-28CC-4371-BC54-93D15EFC1E7F} {2C6C511D-4542-4E0C-95D0-05D4406032F2} {7C6D92EF-7B45-46E5-8670-819663220E4E}
PowerPoint {EECBA6B8-3A62-44AD-99EB-8666265466F9} {813139AD-6DAB-4DDD-8C6D-0CA30D073B41} {05758318-BCFD-4288-AD8D-81185841C235} {9E73CEA4-29D0-4D16-8FB9-5AB17387C960} {E0A76492-0FD5-4EC2-8570-AE1BAA61DC88}
Visio {3EA123B5-6316-452E-9D51-A489E06E2347} {C1713368-12A8-41F1-ACA1-934B01AD6EEB} {2CC0B221-22D2-4C15-A9FB-DE818E51AF75} {A4C55BC1-B94C-4058-B15C-B9D4AE540AD1} {2D4540EC-2C88-4C28-AE88-2614B5460648}
Word {8B74A499-37F8-4DEA-B5A0-D72FC501CEFA} {9FE736B7-B1EE-410C-8D07-082891C3DAC8} {13C07AF5-B206-4A48-BB5B-B8022333E3CA} {30CAC893-3CA4-494C-A5E9-A99141352216} {DC5CCACD-A7AC-4FD3-9F70-9454B5DE5161}
Microsoft Forms 2.0 {B2279272-3FD2-434D-B94E-E4E0F8561AC4} {B2279272-3FD2-434D-B94E-E4E0F8561AC4} {A5A30117-2D2A-4C5C-B3C8-8897AC32C2AC} - -
Microsoft Graph {011B9112-EBB1-4A6C-86CB-C2FDC9EA7B0E} {52DA4B37-B8EB-4B7F-89C1-824654CE4C70} {24706F33-F0CE-4EB4-BC91-9E935394F510} - -
Etiqueta inteligente {7102C98C-EF47-4F04-A227-FE33650BF954} {487A7921-EB3A-4262-BB5B-A5736B732486} {74EFC1F9-747D-4867-B951-EFCF29F51AF7} - -
Office compartido {64E2917E-AA13-4CA4-BFFE-EA6EDA3AFCB4} {6A174BDB-0049-4D1C-86EF-3114CB0C4C4E} {76601EBB-44A7-49EE-8DE3-7B7B9D7EBB05} {68477CB0-662A-48FB-AF2E-9573C92869F7} {625F5772-C1B3-497E-8ABE-7254EDB00506}
Proyecto {957A4EC0-E67B-4E86-A383-6AF7270B216A} {1C50E422-24FA-44A9-A120-E88280C8C341} {706D7F44-8231-489D-9B25-3025ADE9F114} {0B6EDA1D-4A15-4F88-8B20-EA6528978E4E} {107BCD9A-F1DC-4004-A444-33706FC10058}

Captura de pantalla de las condiciones de inicio finales

Figura 11: Condiciones de inicio finales

Puede refinar aún más las condiciones de inicio de la instalación de ExcelAddIn. Por ejemplo, puede resultar útil comprobar si está instalado el destino real de la aplicación de Office.

Compilación del proyecto de configuración

  1. En el Explorador de soluciones, haga clic con el botón derecho en el proyecto OfficeAddInSetup y haga clic en Compilación.
  2. Con el Explorador de Windows, vaya al directorio de salida del proyecto OfficeAddInSetup y vaya a la carpeta Lanzamiento o Depuración, en función de la configuración de compilación seleccionada. Copie todos los archivos de la carpeta en una ubicación a la que los usuarios puedan acceder.

Para probar la configuración de ExcelAddIn

  1. Vaya a la ubicación en la que copió OfficeAddInSetup.
  2. Haga doble clic en el archivo setup.exe para instalar el complemento OfficeAddInSetup. Acepte los términos de licencia de software que aparecen y complete el asistente para instalación para instalar el complemento en el ordenador del usuario.

La solución de Office para Excel debe instalarse y ejecutarse desde la ubicación especificada durante la configuración.

Requisitos adicionales para soluciones de nivel de documento

La implementación de soluciones de nivel de documento requiere algunos pasos de configuración diferentes en el proyecto de configuración de Windows Installer.

Esta es una lista de los pasos básicos necesarios para implementar una solución de nivel de documento:

  • Creación del proyecto de configuración en Visual Studio.
  • Añada la salida principal de la solución de nivel de documento. La salida principal también incluye el documento de Microsoft Office.
  • Agregar los manifiestos de implementación y de aplicación como archivos sueltos.
  • Excluya los componentes dependientes del paquete del instalador (excepto los ensamblados de utilidades).
  • Configure los paquetes de requisitos previos.
  • Configure las condiciones de inicio.
  • Compile el proyecto de configuración y copie los resultados en la ubicación de implementación.
  • Implemente la solución de nivel de documento en el ordenador del usuario ejecutando la configuración.
  • Actualice las propiedades del documento personalizadas si es necesario.

Cambiar la ubicación del documento implementado

Las propiedades dentro de un documento de Office se usan para buscar soluciones de nivel de documento. Si el documento está instalado en la misma carpeta que el ensamblado VSTO, no se requieren cambios. Sin embargo, si se instala en una carpeta diferente, estas propiedades deberán actualizarse durante la configuración.

Para obtener más información acerca de estas propiedades del documento, consulte Introducción a las propiedades de documento personalizadas.

Para cambiar estas propiedades, debe usar una acción personalizada durante la configuración.

En el ejemplo siguiente se usa una solución de nivel de documento denominada ExcelWorkbookProject y un proyecto de configuración denominado ExcelWorkbookSetup. El proyecto ExcelWorkbookSetup se configura mediante los mismos pasos descritos anteriormente, excepto para establecer las claves de registro.

Para añadir el proyecto de acción personalizada a su solución de Visual Studio.

  1. Para agregar un nuevo proyecto de consola de .NET a la solución, haga clic con el botón derecho en el proyecto de implementación de documentos de Office en el Explorador de soluciones

  2. Expanda Agregar y haga clic en Nuevo proyecto.

  3. Seleccione la plantilla Aplicación de consola y asigne el nombre AddCustomizationCustomAction al proyecto.

    Captura de pantalla del Explorador de soluciones: AddCustomizationCustomAction

    Figura 12: Explorador de soluciones: AddCustomizationCustomAction

  4. Añada una referencia a estos ensamblados:

    1. System.ComponentModel
    2. System.Configuration.Install
    3. Microsoft.VisualStudio.Tools.Applications
    4. Microsoft.VisualStudio.Tools.Applications.ServerDocument
  5. Copie este código en Program.cs o Program.vb

    using System;
    using System.IO;
    using System.Collections;
    using System.ComponentModel;
    using System.Configuration.Install;
    using Microsoft.VisualStudio.Tools.Applications;
    using Microsoft.VisualStudio.Tools.Applications.Runtime;

    namespace AddCustomizationCustomAction
    {
        [RunInstaller(true)]
        public class AddCustomizations : Installer
        {
            public AddCustomizations() : base() { }

            public override void Install(IDictionary savedState)
            {
                base.Install(savedState);

                //Get the CustomActionData Parameters
                string documentLocation = Context.Parameters.ContainsKey("documentLocation") ? Context.Parameters["documentLocation"] : String.Empty;
                string assemblyLocation = Context.Parameters.ContainsKey("assemblyLocation") ? Context.Parameters["assemblyLocation"] : String.Empty;
                string deploymentManifestLocation = Context.Parameters.ContainsKey("deploymentManifestLocation") ? Context.Parameters["deploymentManifestLocation"] : String.Empty;
                Guid solutionID = Context.Parameters.ContainsKey("solutionID") ? new Guid(Context.Parameters["solutionID"]) : new Guid();

                string newDocLocation = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), Path.GetFileName(documentLocation));

                try
                {
                    //Move the file and set the Customizations
                    if (Uri.TryCreate(deploymentManifestLocation, UriKind.Absolute, out Uri docManifestLocationUri))
                    {
                        File.Move(documentLocation, newDocLocation);
                        ServerDocument.RemoveCustomization(newDocLocation);
                        ServerDocument.AddCustomization(newDocLocation, assemblyLocation,
                                                        solutionID, docManifestLocationUri,
                                                        true, out string[] nonpublicCachedDataMembers);
                    }
                    else
                    {
                        LogMessage("The document could not be customized.");
                    }
                }
                catch (ArgumentException)
                {
                    LogMessage("The document could not be customized.");
                }
                catch (DocumentNotCustomizedException)
                {
                    LogMessage("The document could not be customized.");
                }
                catch (InvalidOperationException)
                {
                    LogMessage("The customization could not be removed.");
                }
                catch (IOException)
                {
                    LogMessage("The document does not exist or is read-only.");
                }
            }

            public override void Rollback(IDictionary savedState)
            {
                base.Rollback(savedState);
                DeleteDocument();
            }
            public override void Uninstall(IDictionary savedState)
            {
                base.Uninstall(savedState);
                DeleteDocument();
            }
            private void DeleteDocument()
            {
                string documentLocation = Context.Parameters.ContainsKey("documentLocation") ? Context.Parameters["documentLocation"] : String.Empty;

                try
                {
                    File.Delete(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), Path.GetFileName(documentLocation)));
                }
                catch (Exception)
                {
                    LogMessage("The document doesn't exist or is read-only.");
                }
            }
            private void LogMessage(string Message)
            {
                if (Context.Parameters.ContainsKey("LogFile"))
                {
                    Context.LogMessage(Message);
                }
            }

            static void Main() { }
            }
    }

Para agregar la personalización al documento, debe tener el identificador de solución de la solución de nivel de documento de VSTO. Este valor se recupera del archivo de proyecto de Visual Studio.

Para recuperar el identificador de la solución

  1. En el menú Compilación , haga clic en Compilar solución para compilar la solución de nivel de documento y agregue la propiedad Identificador de la solución al archivo del proyecto.

  2. En el Explorador de soluciones, haga clic con el botón derecho en el proyecto de nivel de documento ExcelWorkbookProject

  3. Haga clic en UnloadProject para acceder al archivo del proyecto desde Visual Studio.

    Captura de pantalla del Explorador de soluciones descargando la solución de documentos de Excel

    Figura 13: Descargar solución de documentos de Excel

  4. En el Explorador de soluciones, haga clic con el botón derecho en ExcelWorkbookProject y haga clic en EditExcelWorkbookProject.vbproj o Editar ExcelWorkbookProject.csproj.

  5. En el editor ExcelWorkbookProject, busque el elemento SolutionID dentro del elemento PropertyGroup.

  6. Copie el valor GUID de este elemento.

    Recuperación del SolutionID

    Figura 14: Recuperación del SolutionID

  7. En el Explorador de soluciones, haga clic con el botón derecho en ExcelWorkbookProject y haga clic en Volver a cargar el proyecto.

  8. Haga clic en en el cuadro de diálogo que aparece para cerrar el editor ExcelWorkbookProject.

  9. El ID de la solución se usará en la acción personalizada de instalación.

El último paso es configurar la acción personalizada para los pasos Instalar y Desinstalar.

Para configurar el proyecto de configuración

  1. En el Explorador de soluciones, haga clic con el botón derecho en ExcelWorkbookSetup, expanda Añadir y haga clic en Salida del proyecto.

  2. En el cuadro de diálogo Agregar grupo de salida del proyecto, en la lista Proyecto, haga clic en AddCustomizationCustomAction.

  3. Seleccione Salida principal y haga clic en Aceptar para cerrar el cuadro de diálogo y agregar el ensamblado que contiene la acción personalizada al proyecto de configuración.

    Captura de pantalla de ventana “Acción personalizada del manifiesto de documento: agregar el grupo de salida del proyecto”

    Figura 15: Acción personalizada del manifiesto del documento: agregar grupo de salida del proyecto

  4. En el Explorador de soluciones, haga clic con el botón derecho en ExcelWorkbookSetup.

  5. Expanda Ver y haga clic en Acciones personalizadas.

  6. En el editor Acciones personalizadas(ExcelWorkbookSetup), haga clic con el botón derecho en Acciones personalizadas y haga clic en Agregar acción personalizada.

  7. En el cuadro de diálogo Seleccionar elemento en el proyecto, en la lista Buscar en, haga clic en Carpeta de aplicación. Seleccione Salida principal de AddCustomizationCustomAction(active) y haga clic en Aceptar para agregar la acción personalizada al paso Instalar.

  8. En el nodo Instalar, haga clic con el botón derecho en Salida principal de AddCustomizationCustomAction(Active) y haga clic en Cambiar nombre. Asigne un nombre a la acción personalizada Copiar documento a Mis documentos y adjuntar la personalización.

  9. En el nodo Desinstalar, haga clic con el botón derecho en Salida principal de AddCustomizationCustomAction(Active) y haga clic en Cambiar nombre. Asigne un nombre a la acción personalizada Eliminar documento de la carpeta Documentos.

    Captura de pantalla de ventana “Acción personalizada del manifiesto de documento”

    Figura 16: Acciones personalizadas del manifiesto del documento

  10. En el editor Acciones personalizadas(ExcelWorkbookSetup), haga clic con el botón derecho en Copiar documento en Mis documentos y adjuntar personalización y haga clic en la Ventana Propiedades.

  11. En la ventana CustomActionDataPropiedades, escriba la ubicación del archivo DLL de personalización, el manifiesto de implementación y la ubicación del documento de Microsoft Office. También se necesita el valor SolutionID.

  12. Si desea registrar errores de configuración en un archivo, incluya un parámetro LogFile. s

    /assemblyLocation="[INSTALLDIR]ExcelWorkbookProject.dll" /deploymentManifestLocation="[INSTALLDIR]ExcelWorkbookProject.vsto" /documentLocation="[INSTALLDIR]ExcelWorkbookProject.xlsx" /solutionID="Your Solution ID" /LogFile="[TARGETDIR]Setup.log"
    

    Captura de pantalla de la ventana “Acción personalizada para copiar documento en Mis documentos Propiedades”

    Figura 17: Acción personalizada para copiar documento en Mis documentos

  13. La acción personalizada para desinstalar necesita el nombre del documento; puede proporcionarlo mediante el mismo parámetro documentLocation en CustomActionData.

    /documentLocation="[INSTALLDIR]ExcelWorkbookProject.xlsx"
    
  14. Compile e implemente el proyecto ExcelWorkbookSetup.

  15. Busque en la carpeta Mis documentos y abra el archivo ExcelWorkbookProject.xlsx.

Recursos adicionales

Cómo: Instalar Visual Studio Tools para Office Runtime

Office Primary Interop Assemblies

Entradas del registro para complementos de VSTO

Custom Document Properties Overview

Especificar secciones de formulario en el Registro de Windows

Granting Trust to Documents

Acerca de los autores

Wouter van Vugt es Microsoft MVP con tecnologías open XML de Office y consultor independiente centrado en la creación de aplicaciones empresariales de Office (OBA) con SharePoint, Microsoft Office y tecnologías de .NET relacionadas. Wouter es colaborador frecuente de sitios de Developer Community, como MSDN. Ha publicado varias notas de producto y artículos, así como un libro disponible en línea titulado Open XML: Explained e-book. Wouter es fundador de Code-Counsel, una empresa holandesa centrada en ofrecer contenido técnico de vanguardia a través de una variedad de canales. Puede obtener más información sobre Wouter leyendo su blog.

Ted Pattison es MVP, autor, entrenador y fundador del Ted Pattison Group. En otoño de 2005, Ted fue contratado por el grupo Evangelism de la Plataforma para desarrolladores de Microsoft para crear el plan de estudios de aprendizaje para desarrolladores de Ascend para Windows SharePoint Services 3.0 y Microsoft Office SharePoint Server 2007. Desde ese momento, Ted ha estado centrado completamente en educar a desarrolladores profesionales en tecnologías de SharePoint 2007. Ted ha terminado de escribir un libro para Microsoft Press titulado Inside Windows SharePoint Services 3.0 que se centra en cómo usar SharePoint como plataforma de desarrollo para crear soluciones empresariales. Ted también escribe una columna centrada en el desarrollador para MSDN Magazine titulada Office Space.