Share via


Tutorial: Implementar una personalización de nivel de documento mediante un manifiesto de implementación (2003 System)

Actualización: noviembre 2007

Se aplica a

La información de este tema sólo se aplica a los proyectos de Visual Studio Tools para Office y versiones de Microsoft Office especificados.

Tipo de proyecto

  • Proyectos de nivel de documento

Versión de Microsoft Office

  • Microsoft Office 2003

Para obtener más información, vea Características disponibles por aplicación y tipo de proyecto.

Este tutorial demuestra cómo implementar una personalización de nivel de documento para Microsoft Office Excel o Microsoft Office Word en un recurso compartido de red en un servidor. Al final del tutorial, se podrá ejecutar la solución en el servidor desde el equipo de desarrollo. Para obtener más información sobre las personalizaciones de nivel de documento, vea Arquitectura de las personalizaciones de nivel de documento.

En un entorno de producción, con frecuencia se publica una solución de Visual Studio Tools para Office primero en un servidor de pruebas y, a continuación, se vuelve a implementar en un servidor de producción, después de la aprobación del departamento de TI. En este tutorial, publicará una solución para una ubicación temporal en el equipo de desarrollo y, después, volverá a implementar la solución desde la ubicación temporal en un servidor. Para obtener más información sobre las opciones para implementar la solución, vea Modelos de implementación (2003 System).

En este tutorial se muestran las siguientes tareas:

  • Usar el Asistente para publicación para publicar la solución en una ubicación del equipo de desarrollo.

  • Volver a implementar manualmente la solución del equipo local en un recurso compartido de red de un servidor.

  • Modificar mediante programación el manifiesto de aplicación incrustado en el documento para indicar la nueva ubicación del manifiesto de implementación.

  • Modificar el manifiesto de implementación para indicar la nueva ubicación del manifiesto de aplicación externo.

  • Modificar el manifiesto de aplicación externo para indicar la nueva ubicación de ensamblado y el manifiesto de implementación.

Requisitos previos

Necesita los componentes siguientes para completar este tutorial:

  • Visual Studio Tools para Office (componente opcional de Visual Studio 2008 Professional y Visual Studio Team System).

  • Microsoft Office Word 2003 o Microsoft Office Excel 2003.

    Nota:

    Este tutorial da por hecho que está implementando una solución de Word. Si desea realizar el tutorial con una solución de Excel, reemplace el nombre del proyecto de Word por el nombre de un proyecto de Excel en todos los ejemplos de código y XML.

  • Obtener acceso a un servidor de red para la implementación. Este tutorial da por hecho que se implementa de nuevo la solución en el recurso compartido de red \\DeployServer\ShareFolder.

  • Privilegios de administrador en el equipo de desarrollo, con el fin de poder establecer la directiva de seguridad para una ubicación de red.

Crear el proyecto

En este paso creará un proyecto de documento de Word.

Para crear un nuevo proyecto

  • Cree un proyecto de documento de Word con el nombre WordDeployment, mediante la plantilla de proyecto de Office 2003.

    En el asistente, seleccione Crear un nuevo documento. Para obtener más información, vea Cómo: Crear proyectos de Visual Studio para Office.

Visual Studio abre el nuevo documento de Word en el diseñador y agrega el proyecto WordDeployment al Explorador de soluciones.

Agregar código subyacente al documento

El proyecto necesita código para comprobar que la solución está funcionando al abrir el documento. Para este tutorial, agregue un cuadro de mensaje al controlador de eventos Startup del documento.

Para agregar un cuadro de mensaje a un evento de inicialización

  1. En el Explorador de soluciones, haga clic con el botón secundario del mouse en ThisDocument.vb o ThisDocument.cs y, a continuación, haga clic en Ver código en el menú de acceso directo.

  2. Agregue el código siguiente al controlador de eventos Startup de la clase ThisDocument para que aparezca un cuadro de mensaje durante la inicialización.

    Private Sub ThisDocument_Startup(ByVal sender As Object, ByVal e As System.EventArgs) _
        Handles Me.Startup
    
        MessageBox.Show("The document is deployed correctly.")
    End Sub
    
    private void ThisDocument_Startup(object sender, System.EventArgs e)
    {
        MessageBox.Show("The document is deployed correctly.");
    }
    
  3. Presione F5 para ejecutar el proyecto.

    Se inicia Word y aparece el cuadro de mensaje.

  4. Cierre el cuadro de mensaje.

  5. Salga de Word.

Publicar la solución

El primer paso de implementación de este proceso es publicar la solución en una ubicación temporal del equipo local.

Para publicar la solución

  1. En el Explorador de soluciones, haga clic con el botón secundario del mouse en el nodo del proyecto.

  2. Haga clic en Publicar en el menú de acceso directo.

    Aparece el Asistente para publicación.

  3. En el cuadro Especificar la ubicación para publicar esta aplicación, escriba C:\TestDeploy.

  4. Haga clic en Finalizar.

    El documento de solución y el manifiesto de implementación se copian en C:\TestDeploy. El ensamblado de solución, el manifiesto de aplicación actualizado y las copias del documento de solución y del manifiesto de implementación se copian en C:\TestDeploy\WordDeployment_1.0.0.0. Para obtener más información, vea Implementar personalizaciones de nivel de documento (2003 System).

  5. Haga clic en Cerrar solución en el menú Archivo para cerrar la solución WordDeployment en Visual Studio.

    Nota:

    El ensamblado aún no tiene permiso para ejecutar, por lo que se generará un error si intenta ejecutar la solución. Más adelante, va a actualizar la directiva de seguridad para conceder permiso de plena confianza al ensamblado.

Cuando se publica una solución, el manifiesto de aplicación incrustado en el documento de solución indica la ruta de acceso completa del manifiesto de implementación. Si se vuelven a implementar los archivos de solución en otra ubicación, se debe actualizar el manifiesto de aplicación incrustado para que indique la nueva ubicación del manifiesto de implementación. También se debe actualizar el manifiesto de implementación y el manifiesto de aplicación externo para indicar las nuevas ubicaciones del archivo.

Actualizar el manifiesto de aplicación incrustado

Para modificar el manifiesto de aplicación incrustado, utilice la clase ServerDocument, que proporciona Visual Studio Tools para Office. Cuando se utiliza la clase ServerDocument, debe ejecutar el código en un nuevo proyecto (no la solución de Visual Studio Tools para Office), como por ejemplo, un proyecto de consola, y cerrar el documento de la solución de Visual Studio Tools para Office.

Nota:

Visual Studio Tools para Office incluye un ejemplo que muestra cómo crear una herramienta que se puede utilizar para editar el manifiesto de aplicación incrustado. Para obtener más información, vea Ejemplo ServerDocument.

Para actualizar el manifiesto de aplicación incrustado

  1. Cree un nuevo proyecto de Aplicación de consola.

  2. Agregue a este proyecto las referencias a los ensamblados Microsoft.VisualStudio.Tools.Applications.Runtime y System.Windows.Forms.

  3. Abra el archivo Program.cs o Module1.vb y agregue las siguientes instrucciones Imports o using a la parte superior del archivo.

    Imports Microsoft.VisualStudio.Tools.Applications.Runtime
    
    using Microsoft.VisualStudio.Tools.Applications.Runtime;
    
  4. Copie el siguiente código en la función Main. Este código crea un elemento ServerDocument, que proporciona acceso al manifiesto de aplicación incrustado del documento de solución. El código asigna la nueva ruta de acceso del manifiesto de implementación a la propiedad DeployManifestPath y, a continuación, guarda y cierra ServerDocument.

    Dim sd As ServerDocument = Nothing
    Try
        sd = New ServerDocument("C:\TestDeploy\WordDeployment.doc")
        sd.AppManifest.DeployManifestPath = _
            "\\DeployServer\ShareFolder\WordDeployment.application"
        sd.Save()
    
    Finally
        If Not sd Is Nothing Then
            sd.Close()
        End If
    End Try
    
    ServerDocument sd = null;
    try
    {
        sd = new ServerDocument(@"C:\TestDeploy\WordDeployment.doc");
        sd.AppManifest.DeployManifestPath = 
            @"\\DeployServer\ShareFolder\WordDeployment.application";
        sd.Save();
    }
    finally
    {
        if (sd != null)
        {
            sd.Close();
        }
    }
    
  5. Presione F5 para ejecutar el proyecto.

    Aparece brevemente una ventana de consola mientras se actualiza el manifiesto de aplicación incrustado y, a continuación, ésta se cierra.

Actualizar el manifiesto de implementación

Ahora que ya ha actualizado el manifiesto de aplicación incrustado en el documento de la solución de Visual Studio Tools para Office, debe actualizar el manifiesto de implementación para indicar la nueva ubicación del manifiesto de aplicación externo.

Para actualizar el manifiesto de implementación

  1. Abra el manifiesto de implementación en un editor de texto como el Bloc de notas. El manifiesto de implementación se encuentra en la carpeta de publicación C:\TestDeploy. Se denomina WordDeployment.application.

  2. Establezca el atributo codebase del elemento <dependentAssembly> en la ruta de acceso completa de la ubicación de implementación final del manifiesto de aplicación externo. Para obtener más información, vea Elemento <dependentAssembly> (Referencia de Visual Studio Tools para Office). El atributo para este tutorial debe tener un aspecto similar al del ejemplo siguiente.

    <dependentAssembly
        codebase="\\DeployServer\ShareFolder\
        WordDeployment_1.0.0.0\WordDeployment.dll.manifest"
    
  3. Guarde y cierre el archivo del manifiesto de implementación.

Actualizar el manifiesto de aplicación externo

Además de actualizar el manifiesto de implementación, también hay que editar el manifiesto de aplicación externo con el fin de que indique la ubicación de implementación final del ensamblado de solución y del manifiesto de implementación. Cada vez que se publica una solución de Visual Studio Tools para Office, se genera un nuevo manifiesto de aplicación externo que indica la versión actual del ensamblado de solución.

Para actualizar el manifiesto de aplicación externo

  1. Abra el manifiesto de aplicación en un editor de texto como el Bloc de notas. El manifiesto de aplicación se encuentra en la carpeta de publicación C:\TestDeploy\WordDeployment_1.0.0.0. Se denomina WordDeployment.dll.manifest.

  2. Busque el elemento <installFrom>, que es el elemento secundario del elemento <dependency>, y establezca el atributo codebase en la ruta de acceso completa del ensamblado de solución actual. Para obtener más información, vea Elemento <installFrom> (Referencia de Visual Studio Tools para Office). El atributo para este tutorial debe tener un aspecto similar al del ejemplo siguiente.

    <dependentAssembly
        codebase="\\DeployServer\ShareFolder\
        WordDeployment_1.0.0.0\WordDeployment.dll"
    
  3. Busque el elemento <installFrom>, que es el elemento secundario del elemento <assembly>, y establezca el atributo codebase en la ruta de acceso completa del manifiesto de implementación. Para obtener más información, vea Elemento <installFrom> (Referencia de Visual Studio Tools para Office). El atributo para este tutorial debe tener un aspecto similar al del ejemplo siguiente.

    <dependentAssembly
        codebase="\\DeployServer\ShareFolder\WordDeployment.application"
    
  4. Guarde y cierre el archivo del manifiesto de aplicación.

Copiar los archivos de solución en el servidor

Ahora que ya ha modificado los manifiestos, puede copiar los archivos de la solución en el destino de implementación final en el servidor.

Para copiar los archivos de solución en el servidor

  1. Cree una carpeta WordDeployment_1.0.0.0 bajo el recurso compartido de archivos de red \\DeployServer\ShareFolder.

  2. Copie el documento de solución y el manifiesto de implementación en \\DeployServer\ShareFolder.

  3. Copie el ensamblado de solución y el manifiesto de aplicación en \\DeployServer\ShareFolder\WordDeployment_1.0.0.0.

Otorgar plena confianza a la carpeta de red

Para ejecutar la solución de Visual Studio Tools para Office desde la carpeta de red, debe otorgar plena confianza a esa carpeta en la directiva de seguridad del equipo de desarrollo. Es posible modificar la directiva de seguridad desde un símbolo del sistema utilizando la herramienta de la directiva de seguridad de acceso a código (Caspol.exe). Para otorgar confianza a una ubicación de red hay que tener privilegios de administrador y hay que cambiar la directiva de seguridad en el nivel de equipo.

Nota:

Este procedimiento fue ideado con el propósito de llevar a cabo este tutorial. No utilice este procedimiento para otorgar confianza a los ensamblados ni a los directorios si no se tiene la certeza de que son totalmente seguros. Para obtener más información sobre cómo conceder y quitar los permisos, vea Cómo: Conceder permisos a carpetas y ensamblados (2003 System) y Cómo: Quitar permisos a carpetas y ensamblados (2003 System).

Para otorgar plena confianza a la carpeta de red

  • Escriba el siguiente comando en el símbolo del sistema de Visual Studio:

    caspol -m -ag LocalIntranet_Zone -url \\DeployServer\ShareFolder\* FullTrust -n "Remote Deployment" -d "Deployment Walkthrough"
    

Comprobar la solución

Ahora es posible comprobar la solución para asegurarse de que el código se ejecuta al abrir el documento desde el equipo de desarrollo.

Para comprobar la implementación

  1. En el equipo de desarrollo, abra el archivo WordDeployment.doc que se encuentra en \\DeployServer\ShareFolder\.

  2. Confirme que aparece el cuadro de mensaje.

Pasos siguientes

También es posible implementar la solución utilizando un archivo de Microsoft Windows Installer (.msi). Para obtener más información, vea Tutorial: Implementar una personalización de nivel de documento mediante un archivo de Windows Installer (2003 System).

Vea también

Tareas

Tutorial: Implementar una personalización de nivel de documento mediante un archivo de Windows Installer (2003 System)

Conceptos

Implementar soluciones de Office (2003 System)

Implementar personalizaciones de nivel de documento (2003 System)

Modelos de implementación (2003 System)