Cómo: Adjuntar extensiones de código administrado a documentos
Puede adjuntar un ensamblado de personalización a un documento de Microsoft Office Word o un libro de Microsoft Office Excel existentes.El documento o libro puede tener cualquier formato de archivo admitido por los proyectos y las herramientas de desarrollo de Microsoft Office en Visual Studio.Para obtener más información, vea Arquitectura de las personalizaciones de nivel de documento.
Se aplica a: La información de este tema se aplica a los proyectos de nivel de documento para las siguientes aplicaciones: Excel 2013 y Excel 2010; Word 2013 y Word 2010. Para obtener más información, vea Características disponibles por aplicación y tipo de proyecto de Office.
Para adjuntar una personalización a un documento de Word o Excel, use el método AddCustomization de la clase ServerDocument.Dado que la clase ServerDocument está diseñada para ejecutarse en un equipo sin Microsoft Office, se puede utilizar este método en soluciones que no están directamente relacionadas con el desarrollo de Microsoft Office (por ejemplo, una aplicación de consola o de Windows Forms).
[!NOTA]
La personalización no se cargará si el código espera controles que el documento especificado no tiene.
Para obtener una demostración en vídeo relacionada con este tema, vea How Do I: Attach or Detach a VSTO Assembly from a Word Document?.
Para asociar extensiones de código administrado a un documento
En un proyecto que no requiere Microsoft Office, como una aplicación de consola o un proyecto de formularios Windows Forms, agregue una referencia a los ensamblados Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll y de Microsoft.VisualStudio.Tools.Applications.Runtime.dll.
Agregue las siguientes instrucciones Imports o using al principio del archivo de código.
Imports Microsoft.VisualStudio.Tools.Applications Imports Microsoft.VisualStudio.Tools.Applications.Runtime
using Microsoft.VisualStudio.Tools.Applications; using Microsoft.VisualStudio.Tools.Applications.Runtime;
Llame al método estático AddCustomization.
En el ejemplo de código siguiente se utiliza la sobrecarga AddCustomization.Esta sobrecarga toma la ruta de acceso completa del documento y Uri que especifica la ubicación del manifiesto de implementación para la personalización que desea asociar al documento.En este ejemplo se presupone que un documento de Word denominado WordDocument1.docx está en el escritorio y que el manifiesto de implementación se encuentra en una carpeta que se denomina Publicar que también está en el escritorio.
Dim documentPath As String = System.Environment.GetFolderPath( _ Environment.SpecialFolder.Desktop) + "\WordDocument1.docx" Dim runtimeVersion As Integer = 0 Try runtimeVersion = ServerDocument.GetCustomizationVersion(documentPath) ' Make sure that this document does not yet have any Visual Studio Tools ' for Office customizations. If runtimeVersion = 0 Then Dim deployManifestPath As String = System.Environment.GetFolderPath( _ Environment.SpecialFolder.Desktop) & "\Publish\WordDocument1.vsto" Dim deploymentManifestUri As New Uri(deployManifestPath) ServerDocument.AddCustomization(documentPath, deploymentManifestUri) System.Windows.Forms.MessageBox.Show("The document was successfully customized.") Else System.Windows.Forms.MessageBox.Show("The document is already customized.") End If Catch ex As FileNotFoundException System.Windows.Forms.MessageBox.Show("The specified document does not exist.") Catch ex As DocumentNotCustomizedException System.Windows.Forms.MessageBox.Show("The document could not be customized." & _ vbLf & ex.Message) End Try
string documentPath = System.Environment.GetFolderPath( Environment.SpecialFolder.Desktop) + @"\WordDocument1.docx"; int runtimeVersion = 0; try { runtimeVersion = ServerDocument.GetCustomizationVersion(documentPath); // Make sure that this document does not yet have any Visual Studio Tools // for Office customizations. if (runtimeVersion == 0) { string deployManifestPath = System.Environment.GetFolderPath( Environment.SpecialFolder.Desktop) + @"\Publish\WordDocument1.vsto"; Uri deploymentManifestUri = new Uri(deployManifestPath); ServerDocument.AddCustomization(documentPath, deploymentManifestUri); System.Windows.Forms.MessageBox.Show("The document was successfully customized."); } else { System.Windows.Forms.MessageBox.Show("The document is already customized."); } } catch (FileNotFoundException) { System.Windows.Forms.MessageBox.Show("The specified document does not exist."); } catch (DocumentNotCustomizedException ex) { System.Windows.Forms.MessageBox.Show("The document could not be customized.\n" + ex.Message); }
Compile el proyecto y ejecute la aplicación en el equipo donde desea adjuntar la personalización.El equipo debe tener Visual Studio 2010 Tools para Office Runtime instalado.
Vea también
Tareas
Cómo: Quitar extensiones de código administrado de documentos
Conceptos
Administrar documentos en un servidor mediante la clase ServerDocument
Manifiestos de implementación y aplicación en soluciones de Office