Поделиться через


Практическое руководство. Вложение расширений управляемого кода в документы

Сборку настройки можно вложить в существующий документ Microsoft Office Word или в книгу Microsoft Office Excel.Документ или книга могут иметь любой формат файла, поддерживаемый проектами и средствами разработки Microsoft Office в Visual Studio.Дополнительные сведения см. в разделе Архитектура настроек на уровне документа.

Применение. Сведения этого раздела применяются к проектам уровня документа для следующих приложений: Excel 2013 и Excel 2010; Word 2013 и Word 2010. Дополнительные сведения см. в разделе Доступность функций по типам приложений Office и проектов.

Для вложения настройки в документ Word или Excel используйте метод AddCustomization класса ServerDocument.Поскольку класс ServerDocument разработан для выполнения на компьютере, на котором не установлен Microsoft Office, этот метод можно использовать в решениях, которые не связаны с разработкой Microsoft Office напрямую (например, в консоли или приложении Windows Forms).

ПримечаниеПримечание

Загрузка настройки прекратится, если в коде ожидаются элементы управления, отсутствующие в указанном документе.

ссылка на видео Для просмотра связанных демонстрационных видеороликов перейдите по ссылке How Do I: Attach or Detach a VSTO Assembly from a Word Document?.

Вложение расширений управляемого кода в документ

  1. В проекте, который не требует Microsoft Office, например консольное приложение или проект Windows Forms добавьте ссылку на сборки Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll и Microsoft.VisualStudio.Tools.Applications.Runtime.dll.

  2. Добавьте следующие операторы Imports или using в верхнюю часть файла кода.

    Imports Microsoft.VisualStudio.Tools.Applications
    Imports Microsoft.VisualStudio.Tools.Applications.Runtime
    
    using Microsoft.VisualStudio.Tools.Applications;
    using Microsoft.VisualStudio.Tools.Applications.Runtime;
    
  3. Вызовите статический метод AddCustomization.

    В следующем примере кода используется перегрузка AddCustomization.Эта перегрузка принимает полный путь документа и Uri, задающий расположение манифеста развертывания для настройки, которая включается в документ.В этом примере предполагается, что документ Word с именем ДокументWord1.docx находится на рабочем столе, а манифест развертывания расположен в папке рабочего стола Публикация.

    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. Выполните построение проекта и запустите приложение на компьютере, на котором нужно применить настройки.Компьютер должен иметь Visual Studio tools для office 2010 установлена среда выполнения.

См. также

Задачи

Практическое руководство. Удаление расширений управляемого кода из документов

Основные понятия

Управление документами на сервере с помощью класса ServerDocument

Манифесты приложения и развертывания в решениях Office