Практическое руководство. Вложение расширений управляемого кода в документы (система 2007)
Обновлен: Ноябрь 2007
Применение |
---|
Сведения, приведенные в данном разделе, относятся только к указанным проектам Visual Studio Tools for Office и версиям Microsoft Office. Тип проекта
Версия Microsoft Office
Дополнительные сведения см. в разделе Доступность функций по типам приложений и проектов. |
Настройку Visual Studio Tools for Office можно включать в существующий документ Microsoft Office Word 2007 или в книгу Microsoft Office Excel 2007. Документ или книга могут быть в любом формате, поддерживаемом Visual Studio Tools for Office. Дополнительные сведения см. в разделе Архитектура настроек на уровне документа.
![]() |
---|
Загрузка настройки прекратится, если в коде ожидаются элементы управления, отсутствующие в указанном документе. |
Для включения настройки Visual Studio Tools for Office в документ Word или Excel используется метод AddCustomization класса ServerDocument. Поскольку класс ServerDocument разработан для выполнения на компьютере, на котором не установлен Microsoft Office, этот метод можно использовать в решениях не на основе проектов Visual Studio Tools for Office (таких как консоль или приложение Windows Forms).
Вложение расширений управляемого кода в документ
Создайте новый проект, который не запускает Word или Excel, например приложение консоли или проект Windows Forms.
В этом новом проекте добавьте ссылку на перечисленные ниже сборки.
Microsoft.VisualStudio.Tools.Applications.ServerDocument.v9.0.dll
Microsoft.VisualStudio.Tools.Applications.Runtime.v9.0.dll
Добавьте следующие операторы Imports или using в верхнюю часть файла кода.
Imports Microsoft.VisualStudio.Tools.Applications Imports Microsoft.VisualStudio.Tools.Applications.Runtime
using Microsoft.VisualStudio.Tools.Applications; using Microsoft.VisualStudio.Tools.Applications.Runtime;
Вызовите статический метод 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); }
См. также
Задачи
Практическое руководство. Написание кода, в котором используются обе версии класса ServerDocument
Практическое руководство. Удаление расширений управляемого кода из документов (система 2007)
Практическое руководство. Удаление расширений управляемого кода из документов (система 2003)
Практическое руководство. Вложение расширений управляемого кода в документы (система 2003)
Основные понятия
Управление документами на сервере с помощью класса ServerDocument