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


Архитектура настроек на уровне документа

Обновлен: Ноябрь 2007

Применение

Сведения, приведенные в данном разделе, относятся только к указанным проектам Visual Studio Tools for Office и версиям Microsoft Office.

Тип проекта

  • Проекты уровня документа

Версия Microsoft Office

  • Выпуск 2007 системы Microsoft Office

  • Microsoft Office 2003

Дополнительные сведения см. в разделе Доступность функций по типам приложений и проектов.

В состав Visual Studio Tools for Office включены проекты для создания настроек уровня документов для Microsoft Office Word и Microsoft Office Excel. В этом разделе описываются следующие аспекты настроек Visual Studio Tools for Office:

  • Основные сведения о настройках

  • Компоненты настроек

  • Особенности работы настроек в системе Microsoft Office 2007

  • Особенности работы настроек в системе Microsoft Office 2003

Дополнительные сведения об использовании настроек Visual Studio Tools for Office см. в разделах Общие сведения о разработке решений Office, Приступая к работе: программирование настроек уровня документа для Word и Знакомство с программными настройками уровня документа для Excel.

Основные сведения о настройках

При построении настроек с помощью Visual Studio Tools for Office создается сборка управляемого кода, связанная с конкретным документом. Документ или книга со связанной сборкой называются расширениями управляемого кода. Дополнительные сведения см. в разделе Общие сведения об использовании сборок в решениях Office.

Когда пользователь открывает документ, приложение Microsoft Office загружает соответствующую сборку. После загрузки сборки настройка может отвечать на события в открытом документе. При открытом документе настройка может также обращаться к объектной модели автоматизации и расширять приложение, а также может использовать любые классы .NET Framework.

Сборка взаимодействует с COM-компонентами приложения посредством основной сборки взаимодействия приложения. Дополнительные сведения см. в разделах Основные сборки взаимодействия Office и Общие сведения о разработке решений Office.

Visual Studio Tools for Office загружает каждую сборку в отдельный домен приложения. Это означает, что некорректное поведение одного решения не приведет к неудачному завершению других решений. Это также гарантирует, что при закрытии документа весь код завершит работу, и сборки выгрузятся из памяти. Настройки на уровне документов сконструированы для работы в одном документе в одном домене приложения. Они не предназначены для взаимодействия между документами. Дополнительные сведения о доменах приложений см. в разделе Общие сведения о доменах приложений.

zcfbd2sk.alert_note(ru-ru,VS.90).gifПримечание.

   Настройки на уровне документов, создаваемые с помощью Visual Studio Tools for Office, разработаны для использования только при запуске приложения конечным пользователем. Если приложение запускается программным способом (например с помощью автоматизации), то настройка может не работать так, как ожидалось.

Взаимодействия этапа разработки и времени выполнения

Для понимания архитектуры решений Visual Studio Tools for Office полезно понять взаимодействия разработки решений и выполнения решений.

Этап разработки

Взаимодействие во время разработки включает следующие этапы:

  1. Разработчик создает проект уровня документа в Visual Studio. Проект включает документ и сборку, выполняющуюся за документом. Документ может уже существовать (возможно созданный конструктором), или же может быть создан новый документ вместе с проектом.

  2. Конструктор (или разработчик, создающий проект, или кто-то еще) создает окончательный вид и поведение документа для конечного пользователя.

Время выполнения

Взаимодействие во время выполнения включает следующие этапы:

  1. Конечный пользователь открывает документ или книгу с расширениями управляемого кода.

  2. Документ или книга загружает скомпилированную сборку.

  3. Сборка реагирует на события, вызываемые работой пользователя в документе или книге.

Сравнение точек зрения разработчика и конечного пользователя

Поскольку разработчик работает в основном в Visual Studio, а конечный пользователь работает в Word или в Excel, существует два пути понимания настроек на уровне документа:

С точки зрения разработчика

С точки зрения конечного пользователя

Используя Visual Studio, разработчик пишет код, доступный для Word и Excel.

Хотя может показаться, что разработчик создает исполняемый файл, который выполняется в Word или Excel, в действительности процесс работает по-другому. Документ связан со сборкой и содержит указатель на эту сборку. При открытии документа Word или Excel обнаруживает сборку и выполняет ее код в ответ на все обработанные события.

Те, кто использует данное решение, просто открывают документ или книгу (или создают новый документ из шаблона) точно так же, как они открывали бы любой другой файл Microsoft Office.

Сборка предоставляет документу или книге настройки, такие как автоматическое заполнение текущими данными или отображение диалогового окна для запроса информации.

Поддерживаемые форматы документов для настроек на уровне документа

При создании проекта настроек можно выбрать формат документа, который будет использоваться в проекте. Дополнительные сведения см. в разделе Практическое руководство. Создание проектов Visual Studio Tools for Office.

В следующей таблице приведены форматы документов, которые можно использовать в настройках на уровне документов в Excel:

Excel 2007

Excel 2003

Книга Excel (.xlsx)

Книга Excel с включенными макросами (.xlsm)

Двоичная книга Excel (.xlsb)

Книга Excel 97–2003 (.xls)

Шаблон Excel (.xltx)

Шаблон Excel с включенными макросами (.xltm)

Шаблон Excel 97–2003 (.xlt)

Книга Excel (.xls)

Шаблон Excel (.xlt)

В следующей таблице приведены форматы документов, которые можно использовать в настройках на уровне документов в Word:

Word 2007

Word 2003

Документ Word (.docx)

Документ Word с включенными макросами (.docm)

Документ Word 97–2003 (.doc)

Шаблон Word (.dotx)

Шаблон Word с включенными макросами (.dotm)

Шаблон Word 97–2003 (.dot)

Документ Word (.doc)

Шаблон Word (.dot)

Если настройка Microsoft Office 2007 вводится в документ, созданный в Microsoft Office 2003, то Visual Studio Tools for Office не меняет формат файла документа.

Следует разрабатывать расширения управляемого кода только для документов в поддерживаемых форматах. Иначе некоторые события могут не вызываться при открытии документа в приложении. Например, событие Open не вызывается, если расширения управляемого кода используются с книгами, сохраненными в формате электронной таблицы XML или в формате веб-страницы (.htm; .html).

Поддержка документов Word, имеющих расширение XML

В шаблонах проектов уровня документов для Word 2003 и Word 2007 не разрешено создавать проекты на основе следующих форматов файлов:

  • XML-документ Word (*xml).

  • XML-документ Word 2003 (*xml).

Если требуется, чтобы конечные пользователи применяли настройки в этих форматах файлов, необходимо построить и развернуть настройку, использующую один из поддерживаемых форматов файлов, приведенных в предыдущей таблице. После установки такой настройки пользователи смогут сохранить документ в формате XML-документа Word (*xml) (для Word 2007) или в формате XML-документа Word 2003 (*xml) (для Word 2003), и настройка будет работать должным образом.

Компоненты настроек

Основные компоненты настройки — это документ и сборка. Кроме этих компонентов существует несколько других частей, играющих важную роль в том, как приложения Microsoft Office обнаруживают и загружают настройки.

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

Настройки используют манифесты развертывания и манифесты приложения для идентификации и загрузки самой свежей версии сборки настройки. Манифест развертывания указывает на текущий манифест приложения. Манифест приложения указывает на сборку настройки и задает класс (или классы) точки входа для выполнения в сборке. Дополнительные сведения см. в разделе Манифесты приложения и развертывания в решениях Office.

Инструменты Visual Studio для среды выполнения Office

Чтобы выполнить настройки, созданные с помощью Visual Studio Tools for Office, на компьютере конечного пользователя должна быть установлена среда выполнения Visual Studio Tools for Office. Среда выполнения Visual Studio Tools for Office включает неуправляемые компоненты, которые загружают сборку настройки, а также ряд управляемых сборок. Эти управляемые сборки предоставляют объектную модель, которую код настройки использует для автоматизации и расширения ведущего приложения.

Дополнительные сведения см. в разделе Общие сведения об инструментах Visual Studio для среды выполнения Office.

Особенности работы настроек в системе Microsoft Office 2007

При открытии пользователем документа, который является частью настройки Microsoft Office 2007, приложение использует манифест развертывания, связанный с данным документом, для обнаружения и загрузки самой свежей версии сборки настройки. Расположение манифеста развертывания хранится в свойстве _AssemblyLocation настраиваемого документа. Строка, идентифицирующая данное расположение, вставляется в это свойство при построении решения.

Манифест развертывания указывает на манифест приложения, который в свою очередь указывает на самую свежую сборку. Дополнительные сведения см. в разделе Манифесты приложения и развертывания в решениях Office.

На следующих рисунках показана основная архитектура настройки для документа системы Microsoft Office 2007:

Архитектура настроек в системе Microsoft Office 2007
Архитектура настройки Office 2007

Процесс загрузки настроек в системе Microsoft Office 2007

При открытии пользователем документа, являющегося частью решения Microsoft Office 2007, происходит следующее:

  1. Приложение Microsoft Office проверяет свойства настраиваемого документа на наличие расширений управляемого кода, связанных с этим документом. Дополнительные сведения см. в разделе Общие сведения о настраиваемых свойствах документа.

  2. Если расширения управляемого кода обнаруживаются, то приложение загружает файл VSTOEE.dll, который в свою очередь загружает файл VSTOLoader.dll. Эти файлы представляют неуправляемые библиотеки DLL, являющиеся компонентами загрузчика для среды Visual Studio Tools for Office, версия 3.0 (cреда выполнения). Дополнительные сведения см. в разделе Общие сведения об инструментах Visual Studio для среды выполнения Office.

  3. VSTOLoader.dll загружает .NET Framework и запускает управляемую часть среды выполнения Visual Studio Tools for Office.

  4. Если документ открывается не с локального компьютера, то среда выполнения Visual Studio Tools for Office проверяет, входит ли место расположения этого документа в список надежных расположений в установках Центра управления безопасностью для данного конкретного приложения Office. Если расположение документа не входит в список надежных, то настройке отказывается в доверии, и процесс загрузки на этом останавливается.

  5. Среда выполнения Visual Studio Tools for Office устанавливает еще не установленное решение, загружает самые свежие версии приложения и манифеста развертывания и выполняет серию проверок безопасности. Дополнительные сведения см. в разделе Безопасность в решениях Office (система 2007).

  6. Если настройка имеет необходимый для выполнения уровень доверия, то среда выполнения Visual Studio Tools for Office использует манифест развертывания и манифест приложения для поиска обновлений сборки. Если новая версия сборки доступна, то среда выполнения загружает эту новую версию сборки в кэш ClickOnce на клиентском компьютере. Дополнительные сведения см. в разделе Развертывание решений Office (система 2007).

  7. Среда выполнения Visual Studio Tools for Office создает новый домен приложения для загрузки сборки настройки.

  8. Среда выполнения Visual Studio Tools for Office загружает сборку настройки в этот домен приложения.

  9. Среда выполнения Visual Studio Tools for Office вызывает обработчик событий Startup в данной сборке настройки. Дополнительные сведения см. в разделе Инструменты Visual Studio для событий проекта Office.

Особенности работы настроек в системе Microsoft Office 2003

При открытии пользователем документа, который является частью настройки Microsoft Office 2003, приложение использует манифест приложения, который встроен в документ, для обнаружения и загрузки самой свежей версии сборки настройки. Этот манифест приложения, встроенный в документ, может указывать либо непосредственно на сборку, либо на манифест развертывания, использующийся для обнаружения обновлений этой сборки. Дополнительные сведения см. в разделе Манифесты приложения и развертывания в решениях Office.

Этот встроенный в документ манифест приложения содержится в невидимом встроенном элементе управления, который называется Runtime Storage Control. Дополнительные сведения см. в разделе Общие сведения о Runtime Storage Control.

На следующих рисунках показана основная архитектура настроек для документа Microsoft Office 2003:

Архитектура настроек в Microsoft Office 2003
Архитектура настройки Office 2003

Процесс загрузки настроек в Microsoft Office 2003

При открытии пользователем документа, являющегося частью решения Microsoft Office 2003, происходит следующее:

  1. Приложение Microsoft Office проверяет свойства настраиваемого документа на наличие расширений управляемого кода, связанных с этим документом. Дополнительные сведения см. в разделе Общие сведения о настраиваемых свойствах документа.

  2. Если расширения управляемого кода обнаруживаются, то приложение загружает файл AddinLoader.dll. Это неуправляемая библиотека DLL, являющаяся компонентом загрузчика для среды Visual Studio 2005 Tools for Office Second Edition (среда выполнения). Дополнительные сведения см. в разделе Общие сведения об инструментах Visual Studio для среды выполнения Office.

  3. Библиотека AddinLoader.dll загружает .NET Framework и запускает управляемую часть среды выполнения Visual Studio Tools for Office.

  4. Среда выполнения Visual Studio Tools for Office создает домен приложения, задает для него политику не доверять зоне "Мой компьютер" и проверяет место хранения политики управления доступом для кода, чтобы найти политику для этой сборки настройки.

  5. .NET Framework проверяет свидетельство, представляемое сборкой, на соответствие этой политике. Если свидетельство не соответствует, вызывается ошибка. Если свидетельство проходит, процесс продолжается.

  6. Если настройка имеет манифест развертывания, то среда выполнения Visual Studio Tools for Office использует его для проверки наличия обновлений сборки. Если обновлений нет, то начинается выполнение.

  7. Среда выполнения Visual Studio Tools for Office загружает сборку в домен приложения.

  8. Среда выполнения Visual Studio Tools for Office вызывает обработчик событий Startup в данной сборке настройки. Дополнительные сведения см. в разделе Инструменты Visual Studio для событий проекта Office.

См. также

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

Архитектура надстроек уровня приложения

Общие сведения об инструментах Visual Studio для среды выполнения Office

Создание решений Office в Visual Studio

Общие сведения о настраиваемых свойствах документа

Модель данных в настройках уровня документа

Общие сведения о Runtime Storage Control

Другие ресурсы

Архитектура средств Visual Studio для решений Office

Безопасность в решениях Office