Практическое руководство. Удаление расширений управляемого кода из документов
Разработчик может программным образом удалить сборку настройки из документа или книги, являющейся частью настройки на уровне документа для Microsoft Office Word или Microsoft Office Excel.Затем пользователи могут открыть документ и просматривать содержимое, но настраиваемый интерфейс пользователя не появится, и код не будет выполняться.
Применение. Сведения этого раздела применяются к проектам уровня документа для следующих приложений: Excel 2013 и Excel 2010; Word 2013 и Word 2010. Дополнительные сведения см. в разделе Доступность функций по типам приложений Office и проектов.
Чтобы удалить сборку настройки, можно использовать один из методов RemoveCustomization, предоставленных средой Visual Studio Tools for Office (cреда выполнения).Выбор используемого метода зависит от необходимости удаления настройки во время выполнения (т.е. путем выполнения кода в настройке с открытым документом Word или книгой Excel) или настройки из закрытого документа или документа, находящегося на сервере, на котором не установлен пакет Microsoft Office.
Для просмотра связанных демонстрационных видеороликов перейдите по ссылке How Do I: Attach or Detach a VSTO Assembly from a Word Document?.
Удаление сборки настройки во время выполнения
Откройте код настройки и вызовите метод Document.RemoveCustomization для Word или метод Workbook.RemoveCustomization для Excel.Этот метод необходимо вызывать только в том случае, если настройка больше не будет использоваться.
Место вызова метода в коде зависит от использования настройки.Например, если клиенты используют функции настройки до момента отправки документа другим клиентам, которым требуется только сам документ (а не настройка), то разработчик может создать пользовательский интерфейс, вызывающий RemoveCustomization по щелчку мыши.Если же настройка заполняет документ данными при первом открытии, но не предоставляет других функций, доступных пользователям напрямую, то RemoveCustomization можно вызвать сразу после завершения инициализации документа настройкой.
Удаление сборки настройки из закрытого документа или документа на сервере
В проекте, который не требует Microsoft Office, например консольное приложение или проект Windows Forms добавьте ссылку на сборку Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll.
Добавьте следующий оператор Imports или using в верхнюю часть файла кода.
Imports Microsoft.VisualStudio.Tools.Applications
using Microsoft.VisualStudio.Tools.Applications;
Вызовите статический метод RemoveCustomization класса ServerDocument и укажите путь документа решения для параметра.
В следующем примере кода предполагается, что настройка удаляется из документа с именем WordDocument1.docx, находящегося на рабочем столе.
Dim documentPath As String = System.Environment.GetFolderPath( _ Environment.SpecialFolder.Desktop) & "\WordDocument1.docx" Dim runtimeVersion As Integer = 0 Try runtimeVersion = ServerDocument.GetCustomizationVersion(documentPath) If runtimeVersion = 3 Then ServerDocument.RemoveCustomization(documentPath) System.Windows.Forms.MessageBox.Show("The customization has been removed.") End If Catch ex As FileNotFoundException System.Windows.Forms.MessageBox.Show("The specified document does not exist.") Catch ex As IOException System.Windows.Forms.MessageBox.Show("The specified document is read-only.") Catch ex As InvalidOperationException System.Windows.Forms.MessageBox.Show("The customization could not be removed." & _ vbLf & ex.Message) End Try
string documentPath = System.Environment.GetFolderPath( Environment.SpecialFolder.Desktop) + @"\WordDocument1.docx"; int runtimeVersion = 0; try { runtimeVersion = ServerDocument.GetCustomizationVersion(documentPath); if (runtimeVersion == 3) { ServerDocument.RemoveCustomization(documentPath); System.Windows.Forms.MessageBox.Show("The customization has been removed."); } } catch (FileNotFoundException) { System.Windows.Forms.MessageBox.Show("The specified document does not exist."); } catch (IOException) { System.Windows.Forms.MessageBox.Show("The specified document is read-only."); } catch (InvalidOperationException ex) { System.Windows.Forms.MessageBox.Show("The customization could not be removed.\n" + ex.Message); }
Выполните построение проекта и запустите приложение на компьютере, на котором нужно удалить настройки.Компьютер должен иметь Visual Studio tools для office 2010 установлена среда выполнения.
См. также
Задачи
Практическое руководство. Вложение расширений управляемого кода в документы
Основные понятия
Управление документами на сервере с помощью класса ServerDocument