Tutorial: Implementar varias soluciones de Office en un instalador de ClickOnce único para .NET Framework 4
Puede implementar varias soluciones de Office en un paquete único para simplificar el proceso de instalación y actualización. Para ello tiene que modificar y volver a firmar los manifiestos de aplicación e implementación después de publicar y antes de instalar.
Se aplica a: la información de este tema se aplica a los proyectos de nivel de documento y los proyectos de nivel de aplicación para Microsoft Office 2010 y 2007 Microsoft Office System. Para obtener más información, vea Características disponibles por aplicación y tipo de proyecto de Office.
En este tutorial se muestran las tareas siguientes:
Crear dos soluciones de Office para implementar y una como proyecto de instalador.
Modificar el manifiesto de aplicación del proyecto de instalador para instalar dos soluciones de Office.
Volver a firmar los manifiestos de aplicación e implementación.
Nota
Es posible que su equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio incluidos en las instrucciones siguientes. La edición de Visual Studio que se tenga y la configuración que se utilice determinan estos elementos. Para obtener más información, vea Valores de configuración de Visual Studio.
Requisitos previos
Necesita los componentes siguientes para completar este tutorial:
-
Una edición de Visual Studio 2010 que incluye las herramientas para desarrolladores de Microsoft Office. Para obtener más información, vea [Configurar un equipo para desarrollar soluciones de Office](bb398242\(v=vs.100\).md).
Word 2007 o Word 2010.
Outlook 2007 u Outlook 2010.
Excel 2007 o Excel 2010.
Un equipo de pruebas.
Crear varias soluciones de Office
Comience por crear tres proyectos de Office, uno de los cuales servirá como instalador. Los otros dos se implementarán en el equipo del usuario final.
Para crear y desarrollar nuevos proyectos de Word, Outlook y Excel
Cree un proyecto de nivel de documento de Word para .NET Framework 4. Póngale el nombre ContosoInstaller y guarde el proyecto en el directorio %perfilDeUsuario%\Documentos\Visual Studio 2010\Projects.
El proyecto ContosoInstaller se usará como instalador. Para obtener más información, vea Cómo: Crear proyectos de Office en Visual Studio.
En la solución ContosoInstaller, agregue un proyecto de nivel de aplicación de Outlook con el nombre ContosoOutlookAddIn y agregue su código al proyecto de Outlook.
En la solución ContosoInstaller, agregue un proyecto de nivel de documento de Excel con el nombre ContosoExcelWorkbook y agregue su código al proyecto de Excel.
Publicar las soluciones de Office
Emplee el Asistente para publicación o la página Proyecto del Diseñador de proyectos para publicar las soluciones de Office en el equipo de desarrollo.
Para publicar los proyectos de Word, Outlook y Excel
Publique el proyecto ContosoInstaller en la carpeta c:\publish. Para obtener más información, vea Cómo: Implementar una solución de Office mediante ClickOnce.
Publique el proyecto ContosoOutlookAddIn en la carpeta c:\publish.
Publique el proyecto ContosoExcelWorkbook en la carpeta c:\publish.
Modificar el manifiesto de aplicación
Use el editor XML de Visual Studio para agregar dependencias de instalación, archivos, puntos de entrada y ensamblados al manifiesto de aplicación. El contenido de un manifiesto de aplicación es similar a una lista de materiales, que enumera el contenido completo de una caja; un manifiesto de aplicación enumera todos los ensamblados de requisito previo y dependientes, así como los archivos que necesita la aplicación. El manifiesto de aplicación para una solución de Office también enumera los ensamblados que debe cargar una aplicación de Office para los complementos de nivel de aplicación y las personalizaciones de nivel de documento.
Agregar las dependencias de instalación
Modifique el manifiesto de aplicación para instalar los ensamblados ContosoOutlookAddIn y ContosoExcelWorkbook y quite las referencias al ensamblado ContosoInstaller.
Para agregar dependencias de instalación al manifiesto de aplicación
Mueva el contenido de los directorios ContosoOutlookAddIn_1_0_0_0 y ContosoExcelWorkbook_1_0_0_0 de la carpeta c:\publish\Archivos de aplicación al directorio ContosoInstaller_1_0_0_0.
Abra los archivos ContosoInstaller.dll.manifest, ContosoOutlookAddIn.dll.manifest y ContosoExcelWorkbook.dll.manifest en un editor XML.
Copie todas las dependencias de instalación y archivo, incluida ContosoOutlookAddIn.dll, del archivo ContosoOutlookAddIn.dll.manifest. Es decir, copie todas las dependencias que comienzan con <dependentAssembly dependencyType="install"> o <file name="app.config">. El código siguiente es lo que debe buscar: sólo variará el elemento <dsig:DigestValue>.
<dependency> <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Office.Tools.Common.v4.0.Utilities.dll" size="30816"> <assemblyIdentity name="Microsoft.Office.Tools.Common.v4.0.Utilities" version="10.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" processorArchitecture="msil" /> <hash> <dsig:Transforms> <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" /> </dsig:Transforms> <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <dsig:DigestValue>Ki0…</dsig:DigestValue> </hash> </dependentAssembly> </dependency> <dependency> <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Office.Tools.Outlook.v4.0.Utilities.dll" size="47200"> <assemblyIdentity name="Microsoft.Office.Tools.Outlook.v4.0.Utilities" version="10.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" processorArchitecture="msil" /> <hash> <dsig:Transforms> <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" /> </dsig:Transforms> <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <dsig:DigestValue>050...</dsig:DigestValue> </hash> </dependentAssembly> </dependency> <dependency> <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="ContosoOutlookAddIn.dll" size="10240"> <assemblyIdentity name="ContosoOutlookAddIn" version="1.0.0.0" language="neutral" processorArchitecture="msil" /> <hash> <dsig:Transforms> <dsig:Transform Algorithm= "urn:schemas-microsoft-com:HashTransforms.Identity" /> </dsig:Transforms> <dsig:DigestMethod Algorithm= "http://www.w3.org/2000/09/xmldsig#sha1" /> <dsig:DigestValue>i4e</dsig:DigestValue> </hash> </dependentAssembly> </dependency> <file name="ContosoOutlookAddIn.dll.config" size="77"> <hash> <dsig:Transforms> <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" /> </dsig:Transforms> <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <dsig:DigestValue>w7W...</dsig:DigestValue> </hash> </file>
En el archivo ContosoInstaller.dll.manifest, pegue la dependencia de instalación ContosoOutlookAddIn.dll al final de la sección de dependencia.
Copie todas las dependencias de instalación y archivos, incluidas ContosoExcelWorkbook.dll y Microsoft.Office.Tools.Common.v4.0.Utilities.dll, del archivo ContosoExcelWorkbook.dll.manifest. Es decir, copie todas las dependencias que comienzan con <dependentAssembly dependencyType="install"> o <file name="app.config">. El código siguiente se parece a lo que debe buscar: solo variará el elemento <dsig:DigestValue>.
<dependency> <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="ContosoExcelWorkbook.dll" size="12800"> <assemblyIdentity name="ContosoExcelWorkbook" version="1.0.0.0" language="neutral" processorArchitecture="msil" /> <hash> <dsig:Transforms> <dsig:Transform Algorithm= "urn:schemas-microsoft-com:HashTransforms.Identity" /> </dsig:Transforms> <dsig:DigestMethod Algorithm= "http://www.w3.org/2000/09/xmldsig#sha1" /> <dsig:DigestValue>i4e</dsig:DigestValue> </hash> </dependentAssembly> </dependency> <dependency> <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Office.Tools.Common.v4.0.Utilities.dll" size="30816"> <assemblyIdentity name="Microsoft.Office.Tools.Common.v4.0.Utilities" version="10.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" processorArchitecture="msil" /> <hash> <dsig:Transforms> <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" /> </dsig:Transforms> <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <dsig:DigestValue>Ki0A9wOpes1YX5NaAvjmUeFSh0g=</dsig:DigestValue> </hash> </dependentAssembly> </dependency> <dependency> <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Office.Tools.Excel.v4.0.Utilities.dll" size="235104"> <assemblyIdentity name="Microsoft.Office.Tools.Excel.v4.0.Utilities" version="10.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" processorArchitecture="msil" /> <hash> <dsig:Transforms> <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" /> </dsig:Transforms> <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <dsig:DigestValue>Te/...</dsig:DigestValue> </hash> </dependentAssembly> </dependency> <file name=" ContosoExcelWorkbook.dll.config" size="77"> <hash> <dsig:Transforms> <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" /> </dsig:Transforms> <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <dsig:DigestValue>w7W...</dsig:DigestValue> </hash> </file>
En el archivo ContosoInstaller.dll.manifest, pegue las dependencias de instalación al final de la sección de dependencia.
En el archivo ContosoInstaller.dll.manifest, quite las dependencias de instalación ContosoInstaller.dll y Microsoft.Office.Tools.Word.v4.0.Utilities.dll. Quite también las dependencias duplicadas. Por ejemplo, puede haber copiado varias dependencias de instalación para Microsoft.Office.Tools.Common.v4.0.Utilities.dll.
Nota
Si está implementando una solución de nivel de documento de Word, conserve Microsoft.Office.Tools.Word.v4.0.Utilities.dll en el manifiesto final.
Agregar los puntos de entrada
Modifique el manifiesto de aplicación para cargar los ensamblados ContosoOutlookAddin y ContosoExcelWorkbook en el espacio de nombres <vstav3>.
Para agregar los puntos de entrada del espacio de nombres vstav3 al manifiesto de aplicación
En el archivo ContosoInstaller.dll.manifest, quite el texto situado entre los elementos <vstav3:entryPointsCollection> y </vstav3:entryPointsCollection>.
Copie el texto situado entre los elementos <vstav3:entryPointsCollection> y </vstav3:entryPointsCollection> del archivo ContosoOutlookAddIn.dll.manifest. El código siguiente se parece a lo que busca.
<vstav3:entryPoints> <vstav3:entryPoint class="ContosoOutlookAddIn.ThisAddIn"> <assemblyIdentity name="ContosoOutlookAddIn" version="1.0.0.0" language="neutral" processorArchitecture="msil" /> </vstav3:entryPoint> </vstav3:entryPoints>
Nota
Si el complemento en el nivel de aplicación de Outlook utiliza un área del formulario, el punto de entrada de Outlook debe ser el último que aparece en la sección <vstav3:entryPoints>.
En el archivo ContosoInstaller.dll.manifest, pegue el código después del elemento <vstav3:entryPointsCollection>.
Agregue el atributo id al elemento <vstav3:entryPoints> para diferenciar este punto de entrada de otros.
<vstav3:entryPoints id="ContosoOutlook">
Copie el texto situado entre los elementos <vstav3:entryPointsCollection> y </vstav3:entryPointsCollection> del archivo ContosoExcelWorkbook.dll.manifest. El código siguiente se parece a lo que busca.
<vstav3:entryPoints> <vstav3:entryPoint class="ContosoExcelWorkbook.ThisWorkbook"> <assemblyIdentity name="ContosoExcelWorkbook" version="1.0.0.0" language="neutral" processorArchitecture="msil" /> </vstav3:entryPoint> <vstav3:entryPoint class="ContosoExcelWorkbook.Sheet1"> <assemblyIdentity name="ContosoExcelWorkbook" version="1.0.0.0" language="neutral" processorArchitecture="msil" /> </vstav3:entryPoint> <vstav3:entryPoint class="ContosoExcelWorkbook.Sheet2"> <assemblyIdentity name="ContosoExcelWorkbook" version="1.0.0.0" language="neutral" processorArchitecture="msil" /> </vstav3:entryPoint> <vstav3:entryPoint class="ContosoExcelWorkbook.Sheet3"> <assemblyIdentity name="ContosoExcelWorkbook" version="1.0.0.0" language="neutral" processorArchitecture="msil" /> </vstav3:entryPoint> </vstav3:entryPoints>
En el archivo ContosoInstaller.dll.manifest, pegue el código situado después del elemento <vstav3:entryPointsCollection>.
Agregue el atributo id al elemento <vstav3:entryPoints> para diferenciar este punto de entrada de otros.
<vstav3:entryPoints id="ContosoExcel">
Agregar los ensamblados
Modifique el manifiesto de aplicación para cargar los ensamblados ContosoOutlookAddIn y ContosoExcelWorkbook en el espacio de nombres <vstov4>.
Para agregar los ensamblados al espacio de nombres vstov4 del manifiesto de aplicación
En el archivo ContosoInstaller.dll.manifest, quite cualquier texto situado entre los elementos <vstov4:customizations xmlns:vstov4="urn:schemas-microsoft-com:vsto.v4"> y </vstov4:customizations>.
Copie el texto situado entre los elementos <vstov4:customizations xmlns:vstov4="urn:schemas-microsoft-com:vsto.v4"> y </vstov4:customizations> del archivo ContosoOutlookAddIn.dll.manifest. El código siguiente es lo que busca.
<vstov4:customization> <vstov4:appAddIn application="Outlook" loadBehavior="3" keyName="ContosoOutlookAddIn"> <vstov4:friendlyName> ContosoOutlookAddIn </vstov4:friendlyName> <vstov4:description> ContosoOutlookAddIn - Outlook add-in created with Visual Studio Tools for Office </vstov4:description> </vstov4:appAddIn> </vstov4:customization>
En el archivo ContosoInstaller.dll.manifest, pegue el código situado después del elemento <vstov4:customizations xmlns:vstov4="urn:schemas-microsoft-com:vsto.v4">.
Agregue el atributo id al elemento <vstav3:customization> para diferenciar esta personalización de otras. Este atributo id es el mismo que se agregó al elemento <vstav3:entryPoints> en el procedimiento anterior.
<vstov4:customization id="ContosoOutlook">
Copie el texto situado entre los elementos <vstov4:customizations xmlns:vstov4="urn:schemas-microsoft-com:vsto.v4"> y </vstov4:customizations> del archivo ContosoExcelWorkbook.dll.manifest. El código siguiente se parece a lo que debe buscar: sólo variará el elemento <solutionId>.
<vstov4:customization> <vstov4:document solutionId="73e" /> </vstov4:customization>
En el archivo ContosoInstaller.dll.manifest, pegue el código situado después del elemento <vstov4:customizations xmlns:vstov4="urn:schemas-microsoft-com:vsto.v4">.
Agregue el atributo id al elemento <vstov4:customizations xmlns:vstov4="urn:schemas-microsoft-com:vsto.v4"> para diferenciar esta personalización de otras. Este atributo id es el mismo que se agregó al elemento <vstav3:entryPoints> en el procedimiento anterior.
<vstov4:customization id="ContosoExcel">
Modificar el proyecto en el nivel del documento
Para todos los proyectos en el nivel del documento en una implementación de varios proyectos, debe anexar el identificador a la propiedad de documento personalizada _AssemblyLocation. En esta sección se muestra cómo actualizar la propiedad _AssemblyLocation en el archivo ContosoExcelWorkbook.xlsx y este paso se debe repetir para todos los proyectos en el nivel del documento.
Para modificar la propiedad _AssemblyLocation en Excel o Word 2010
En Excel, haga clic en la pestaña Archivo.
Haga clic en Información.
Haga clic en la flecha de lista desplegable de Propiedades y, a continuación, haga clic en Propiedades avanzadas.
Haga clic en la pestaña Custom.
En el recuadro Propiedades, haga clic _AssemblyLocation.
En el cuadro de texto Valor, edite el texto para quitar |vstolocal (si existe el texto) y agregue |id=ContosoInstaller.
Haga clic en Aceptar.
Para modificar la propiedad _AssemblyLocation en Excel o Word 2007
En Excel, haga clic en Botón Microsoft Office.
Seleccione Preparar y, a continuación, haga clic en Propiedades.
Haga clic en la flecha de lista desplegable Propiedades del documento y, a continuación, haga clic en Propiedades avanzadas.
Haga clic en la pestaña Custom.
En el recuadro Propiedades, haga clic _AssemblyLocation.
En el cuadro de texto Valor, edite el texto para quitar |vstolocal (si existe el texto) y agregue |id=ContosoInstaller.
Haga clic en Aceptar.
Volver a firmar los manifiestos
Firme los manifiestos de aplicación e implementación con un certificado. Eso garantiza que los archivos no se han manipulado.
Para volver a firmar los manifiestos de aplicación e implementación
Copie el archivo de certificado ContosoInstaller_TemporaryKey.pfx del directorio de la solución %perfilDeUsuario%\Documentos\Visual Studio 2010\Projects\ContosoInstaller\ContosoInstaller en el directorio c:\publish\Archivos de aplicación\ContosoInstaller_1_0_0_0.
Abra el símbolo del sistema de Visual Studio.
Vaya al directorio c:\publish\Archivos de aplicación\ContosoInstaller_1_0_0_0.
Firme el manifiesto de aplicación modificado con el siguiente comando:
mage -sign ContosoInstaller.dll.manifest -certfile ContosoInstaller_TemporaryKey.pfx
Aparece el mensaje "ContosoInstaller.dll.manifest firmado correctamente".
Vaya al directorio c:\publish.
Actualice y firme el manifiesto de implementación con el comando siguiente:
mage -update ContosoInstaller.vsto -appmanifest "Application Files\ContosoInstaller_1_0_0_0\ContosoInstaller.dll.manifest" -certfile "Application Files\ContosoInstaller_1_0_0_0\ContosoInstaller_TemporaryKey.pfx"
Aparece el mensaje "ContosoInstaller.vsto firmado correctamente".
Copie el archivo ContosoInstaller.vsto en el directorio c:\publish\Archivos de aplicación\ContosoInstaller_1_0_0_0.
Probar la implementación de varios proyectos
El procedimiento siguiente garantiza que el manifiesto instala el complemento de Outlook y el libro de Excel.
Para probar la implementación de varios proyectos
Copie el directorio c:\publish en un equipo de pruebas.
Ejecute el programa de instalación para instalar la implementación de varios proyectos.
Aparece el Instalador de Personalización de Microsoft Office.
Haga clic en Instalar.
El cuadro de diálogo Instalador de Personalización de Microsoft Office muestra el mensaje siguiente: "La personalización de Microsoft Office se instaló correctamente".
Abra Outlook para comprobar que el complemento funciona.
Abra el archivo de libro de Excel para comprobar que la personalización de nivel de documento funciona.
Compruebe que la implementación de varios proyectos tiene una entrada única en la lista de aplicaciones instaladas.
Agregar o quitar programas en Windows XP o Programas y características en Windows Vista muestran ContosoInstaller.
Limpiar el directorio de publicación
El procedimiento siguiente quita cualquier archivo innecesario del directorio de publicación.
Para limpiar el directorio de publicación
Quite los archivos siguientes del directorio c:\publish\Archivos de aplicación\ContosoInstaller_1_0_0_0.
ContosoExcelWorkbook.dll.manifest
ContosoExcelWorkbook.vsto
ContosoInstaller.dll.deploy
ContosoInstaller.docx
ContosoInstaller_TemporaryKey.pfx
ContosoOutlookAddIn.dll.manifest
ContosoOutlookAddIn.vsto
Quite los archivos siguientes del directorio c:\publish.
ContosoExcelWorkbook.vsto
ContosoInstaller.docx
ContosoOutlookAddIn.vsto
Vea también
Tareas
Cómo: Volver a firmar manifiestos de aplicación e implementación
Conceptos
Proteger las aplicaciones ClickOnce
Implementación avanzada de soluciones de Office
Otros recursos
Implementar soluciones de Office
Historial de cambios
Fecha |
Historial |
Motivo |
---|---|---|
Septiembre de 2010 |
Se ha cambiado %USERPROFILE%\Documents\Visual Studio 10\Projects a %USERPROFILE%\Documents\Visual Studio 2010\Projects. |
Corrección de errores de contenido. |