Como: Anexar extensões de código gerenciado aos documentos

Você pode anexar um assembly de personalização para um documento do Word de Microsoft Office existente ou a pasta de trabalho do Excel de Microsoft Office. O documento ou pasta de trabalho pode estar em qualquer formato de arquivo que é suportado pelos projetos de Microsoft Office e ferramentas de desenvolvimento no Visual Studio 2010. For more information, see Arquitetura de personalizações em nível de documento.

Aplicável a: As informações neste tópico se aplicam a projetos de nível de documento para os seguintes aplicativos: Excel 2007 e Excel 2010; Word 2007 e Word 2010. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.

Para anexar uma personalização para um documento do Word ou Excel, use o AddCustomization método de ServerDocument classe. Porque o ServerDocument classe foi criada para ser executado em um computador que não tenha de Microsoft Office instalado, você pode usar esse método em soluções que não estão diretamente relacionadas ao desenvolvimento de Microsoft Office (como, por exemplo, um console ou um aplicativo Windows Forms).

ObservaçãoObservação

A personalização não conseguirá carregar se o código espera que os controles que não tenha o documento especificado.

link para vídeo Para uma demonstração de vídeo relacionada, consulte Fazer como i: Anexar ou desanexar um Assembly do VSTO a partir de um documento do Word?.

Para anexar extensões de código gerenciado para um documento

  1. Em um projeto que não exigem o Microsoft Office, como, por exemplo, um aplicativo de console ou um projeto Windows Forms, adicione uma referência a um dos seguintes assemblies:

    • Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll e Microsoft.VisualStudio.Tools.Applications.Runtime.dll (se os destinos do projeto de .NET Framework 4).

      or

    • Microsoft.VisualStudio.Tools.Applications.ServerDocument.v10.0.dll e Microsoft.VisualStudio.Tools.Applications.Runtime.v9.0.dll (se o projeto do.NET Framework 3.5).

  2. Adicione o seguinte Imports ou using instruções para a parte superior do seu arquivo 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;
    
  3. Chamar estática AddCustomization método.

    O seguinte exemplo de código usa a AddCustomization sobrecarga. Essa sobrecarga tem o caminho completo do documento e um Uri que especifica o local do manifesto de implantação para a personalização que você deseja anexar ao documento. Este exemplo assume que um documento do Word chamado WordDocument1.docx está na área de trabalho, e que o manifesto de implantação está localizado em uma pasta chamada Publicar também está na área de trabalho.

    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);
    }
    
  4. Compile o projeto e executar o aplicativo no computador onde você deseja anexar a personalização. O computador deve ter o Visual Studio 2010 Tools for Office Runtime instalado.

Consulte também

Tarefas

Como: Remover extensões de código gerenciado a partir de documentos

Conceitos

Gerenciamento de documentos em um servidor usando a classe ServerDocument

Manifestos de aplicativo e implantação em soluções do Office