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


Развертывание решения VSTO с помощью установщика Windows

Итоги

Узнайте, как развернуть надстройку microsoft набор средств Visual Studio для Office (VSTO) или решение на уровне документа с помощью проекта Visual Studio Installer.

Wouter van Vugt, совет по коду

Те эд Паттисон, Теуд Паттисон Группа

Эта статья была обновлена корпорацией Майкрософт с разрешением от исходных авторов.

Область применения: набор средств Visual Studio для Office, Microsoft Office, Microsoft Visual Studio.

Вы можете разработать решение VSTO и развернуть решение с помощью пакета установщика Windows. В этом обсуждении содержатся шаги по развертыванию простой надстройки Office.

Методы развертывания

ClickOnce можно легко использовать для создания настроек для надстроек и решений. Однако не удается установить надстройки, требующие прав администратора, таких как надстройки уровня компьютера.

Надстройки, требующие прав администратора, могут быть установлены с помощью установщика Windows, но для создания установки требуется больше усилий.

Общие сведения о развертывании решения VSTO с помощью ClickOnce см. в статье "Развертывание решения Office с помощью ClickOnce".

Развертывание решений Office, предназначенных для среды выполнения VSTO

Пакеты ClickOnce и установщика Windows должны выполнять те же самые заявочные задачи при установке решения Office.

  1. Установите необходимые компоненты на пользовательском компьютере.
  2. Разверните определенные компоненты для решения.
  3. Для надстроек создайте записи реестра.
  4. Доверяйте решению, чтобы разрешить ему выполняться.

Необходимые компоненты необходимых компонентов на целевом компьютере

Ниже приведен список программного обеспечения, который должен быть установлен на компьютере для запуска решений VSTO:

  • Microsoft Office 2010 или более поздней версии.
  • Microsoft платформа .NET Framework 4 или более поздней версии.
  • Среда выполнения средств Microsoft Visual Studio 2010 для Office. Среда выполнения предоставляет среду, которая управляет надстройками и решениями на уровне документа. Версия среды выполнения отправляется в Microsoft Office, но может потребоваться распространить определенную версию с помощью надстройки.
  • Основные сборки взаимодействия для Microsoft Office, если вы не используете встроенные типы взаимодействия.
  • Все сборки служебных программ, на которые ссылается проекты.

Определенные компоненты для решения

Пакет установщика должен установить эти компоненты на компьютер пользователя:

  • Документ Microsoft Office, если вы создаете решение на уровне документа.
  • Сборка настройки и все необходимые сборки.
  • Дополнительные компоненты, такие как файлы конфигурации.
  • Манифест приложения (.manifest).
  • Манифест развертывания (VSTO).

Записи реестра для надстроек

Microsoft Office использует записи реестра для поиска и загрузки надстроек. Эти записи реестра должны быть созданы в рамках процесса развертывания. Дополнительные сведения об этих записях реестра см. в разделах реестра для надстроек VSTO.

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

Решения на уровне документа не требуют каких-либо записей реестра. Вместо этого свойства внутри документа используются для поиска настройки. Дополнительные сведения об этих свойствах см. в разделе "Общие сведения о настраиваемых свойствах документа".

Доверие к решению VSTO

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

Дополнительные сведения о получении сертификата для подписывания см. в статье ClickOnce Deployment and Authenticode. Дополнительные сведения о доверии решений см. в статье "Доверие решений Office с помощью списков включения". Вы можете добавить запись списка включения с помощью настраиваемого действия в файле установщика Windows. Дополнительные сведения о включении списка включения см. в разделе "Практическое руководство. Настройка безопасности списка включения".

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

Дополнительные сведения о безопасности, связанной с решениями на уровне документов, см. в разделе "Предоставление доверия документам".

Создание базового установщика

Шаблоны проектов установки и развертывания включены в расширение проектов установщика Microsoft Visual Studio, доступное для скачивания.

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

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

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

Создание проекта установки AddIn

  1. Откройте проект Надстройки Office, который вы хотите развернуть. В этом примере мы используем надстройку Excel с именем ExcelAddIn.
  2. При открытии проекта Office в меню "Файл " разверните узел "Добавить " и нажмите кнопку "Создать проект ", чтобы добавить новый проект.
  1. В диалоговом окне "Добавление нового проекта" выберите шаблон "Настройка проекта".
  2. Нажмите кнопку Далее.
  1. В поле "Имя" введите OfficeAddInSetup.
  1. Нажмите кнопку "Создать", чтобы создать проект установки.

Visual Studio открывает Обозреватель файловой системы для нового проекта установки. Обозреватель файловой системы позволяет добавлять файлы в проект установки.

Снимок экрана: Обозреватель файловой системы для проекта установки

Рис. 1. Обозреватель файловой системы для проекта установки

Проект установки должен развернуть ExcelAddIn. Вы можете настроить проект установки для этой задачи, добавив выходные данные проекта ExcelAddIn в проект установки.

Добавление выходных данных проекта ExcelAddIn

  1. В Обозреватель решений щелкните правой кнопкой мыши OfficeAddInSetup, нажмите кнопку "Добавить" и "Вывод проекта".

  2. В диалоговом окне "Добавление группы выходных данных проекта" выберите ExcelAddIn из списка проектов и первичных выходных данных.

  3. Нажмите кнопку "ОК ", чтобы добавить выходные данные проекта в проект установки.

    Снимок экрана: диалоговое окно

    Рис. 2. Диалоговое окно "Настройка группы выходных данных проекта"

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

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

  1. В Обозреватель решений щелкните правой кнопкой мыши OfficeAddInSetup, нажмите кнопку "Добавить" и щелкните "Файл".

  2. В диалоговом окне "Добавление файлов" перейдите в выходной каталог ExcelAddIn. Обычно выходной каталог представляет собой вложенную папку bin\release корневого каталога проекта в зависимости от выбранной конфигурации сборки.

  3. Выберите файлы ExcelAddIn.vsto и ExcelAddIn.dll.manifest и нажмите кнопку "Открыть", чтобы добавить эти два файла в проект установки.

    Снимок экрана: манифесты приложения и развертывания в Обозреватель решений

    Рис. 3. Манифесты приложения и развертывания для Обозреватель решений надстройки

Ссылка на ExcelAddIn включает все компоненты, необходимые ExcelAddIn. Эти компоненты должны быть исключены и развернуты с помощью необходимых пакетов, чтобы обеспечить их правильную регистрацию. Кроме того, условия лицензионного соглашения на программное обеспечение должны отображаться и приниматься перед началом установки.

Исключение зависимостей проекта ExcelAddIn

  1. В Обозреватель решений на узле OfficeAddInSetup выберите все элементы зависимостей под элементом "Обнаруженные зависимости", за исключением Microsoft платформа .NET Framework или любой сборки, которая заканчивается *.Utilities.dll. Сборки служебных программ предназначены для развертывания вместе с приложением.

  2. Щелкните группу правой кнопкой мыши и выберите пункт "Свойства".

  3. В окне свойств измените свойство Exclude на True, чтобы исключить зависимые сборки из проекта установки. Не исключите сборки служебных программ.

    Снимок экрана: Обозреватель решений с зависимостями, которые необходимо исключить

    Рис. 4. Исключение зависимостей

Пакет установщика Windows можно настроить для установки необходимых компонентов, добавив программу установки, также называемую загрузчиком. Эта программа установки может установить необходимые компоненты, процесс, называемый начальной загрузкой.

Для ExcelAddIn эти предварительные требования должны быть установлены перед правильной запуском надстройки:

  • Версия Microsoft платформа .NET Framework, предназначенная для решения Office.
  • Средства Microsoft Visual Studio 2010 для среды выполнения Office.

Настройка зависимых компонентов в качестве необходимых компонентов

  1. В Обозреватель решений щелкните правой кнопкой мыши проект OfficeAddInSetup и выберите "Свойства".

  2. Откроется диалоговое окно "Страницы свойств OfficeAddInSetup".

  3. Нажмите кнопку "Предварительные требования".

  4. В диалоговом окне "Предварительные требования" выберите правильную версию платформа .NET Framework и среды выполнения Microsoft набор средств Visual Studio для Office.

    Снимок экрана: диалоговое окно

    Рис. 5. Диалоговое окно "Предварительные требования"

    Примечание.

    Некоторые настроенные пакеты необходимых компонентов в проекте установки Visual Studio зависят от выбранной конфигурации сборки. Необходимо выбрать необходимые компоненты для каждой используемой конфигурации сборки.

Microsoft Office находит надстройки с помощью разделов реестра. Ключи в HKEY_CURRENT_USER hive используются для регистрации надстройки для каждого отдельного пользователя. Ключи под HKEY_LOCAL_MACHINE hive используются для регистрации надстройки для всех пользователей компьютера. Дополнительные сведения о разделах реестра см. в разделах реестра для надстроек VSTO.

Настройка реестра

  1. В Обозреватель решений щелкните правой кнопкой мыши OfficeAddInSetup.

  2. Разверните представление.

  3. Щелкните "Реестр", чтобы открыть окно редактора реестра.

  4. В редакторе Registry(OfficeAddInSetup) разверните узел HKEY_LOCAL_MACHINE и программное обеспечение.

  5. Удалите ключ [производитель], найденный в разделе HKEY_LOCAL_MACHINE\Software.

  6. Разверните HKEY_CURRENT_USER и затем Программное обеспечение.

  7. Удалите ключ [производитель], найденный в разделе HKEY_CURRENT_USER\Software.

  8. Чтобы добавить разделы реестра для установки надстройки, щелкните правой кнопкой мыши раздел User/Machine Hive , выберите новый ключ. Используйте текстовое программное обеспечение для имени нового ключа. Щелкните правой кнопкой мыши только что созданный ключ программного обеспечения и создайте новый ключ с текстом Майкрософт.

  9. Используйте аналогичный процесс, чтобы создать всю иерархию ключей, необходимую для регистрации надстроек:

    User/Machine Hive\Software\Microsoft\Office\Excel\Addins\SampleCompany.ExcelAddIn

    Имя компании часто используется в качестве префикса для имени надстройки для обеспечения уникальности.

  10. Щелкните правой кнопкой мыши ключ SampleCompany.ExcelAddIn , выберите "Создать" и щелкните "Строка". Используйте текстовое описание имени.

  11. Используйте этот шаг, чтобы добавить еще три значения:

    • FriendlyName типа String
    • LoadBehavior типа DWORD
    • Манифест типа String
  12. Щелкните правой кнопкой мыши значение описания в редакторе реестра и щелкните окно свойств. В окне свойств введите демонстрационную надстройку Excel для свойства Value.

  13. Выберите раздел FriendlyName в редакторе реестра. В окне свойств измените свойство Value на Excel Demo AddIn.

  14. Выберите раздел LoadBehavior в редакторе реестра. В окне свойств измените свойство Value на 3. Значение 3 для LoadBehavior указывает, что надстройка должна быть загружена при запуске ведущего приложения. Дополнительные сведения о поведении загрузки см . в разделах реестра надстроек VSTO.

  15. Выберите раздел манифеста в редакторе реестра. В окне свойств измените свойство Value на file:///[TARGETDIR]ExcelAddIn.vsto|vsto|vstolocal

    Снимок экрана редактора реестра

    Рис. 6. Настройка разделов реестра

    Среда выполнения VSTO использует этот раздел реестра для поиска манифеста развертывания. Макрос [TARGETDIR] будет заменен папкой, в которой установлена надстройка. Макрос будет содержать символ в конце \ , поэтому имя файла манифеста развертывания должно быть ExcelAddIn.vsto без символа \. Vstolocal postfix сообщает среде выполнения VSTO, что надстройка должна загружаться из этого расположения вместо кэша ClickOnce. Удаление этого postfix приведет к копированию настройки среды выполнения в кэш ClickOnce.

Предупреждение

Вы должны быть очень осторожны с редактором реестра в Visual Studio. Например, если вы случайно установили DeleteAtUninstall для неправильного ключа, вы можете удалить активную часть реестра, оставив компьютер пользователя в несогласованном или даже хуже, сломанном состоянии.

64-разрядные версии Office будут использовать 64-разрядный куст реестра для поиска надстроек. Чтобы зарегистрировать надстройки в 64-разрядном кусте реестра, целевая платформа проекта установки должна иметь только 64-разрядную версию.

  1. Выберите проект OfficeAddInSetup в обозревателе решений.
  2. Перейдите в окно "Свойства" и задайте свойству TargetPlatform значение x64.

Установка надстройки для 32-разрядных и 64-разрядных версий Office потребует создания двух отдельных пакетов MSI. Один для 32-разрядной и один для 64-разрядной версии.

Снимок экрана: окно свойств с целевой платформой для регистрации надстроек с 64-разрядной версией Office

Рис. 7. Целевая платформа для регистрации надстроек с 64-разрядной версией Office

Если пакет MSI используется для установки надстройки или решения, он может устанавливаться без необходимых предварительных требований. Условия запуска можно использовать в MSI, чтобы заблокировать установку надстройки, если предварительные требования не установлены.

Настройка условия запуска для обнаружения среды выполнения VSTO

  1. В Обозреватель решений щелкните правой кнопкой мыши OfficeAddInSetup.

  2. Разверните представление.

  3. Нажмите кнопку " Условия запуска".

  4. В редакторе условий запуска (OfficeAddInSetup) щелкните правой кнопкой мыши требования на целевом компьютере и нажмите кнопку "Добавить условие запуска реестра". Это условие поиска может искать в реестре ключ, который устанавливается средой выполнения VSTO. Затем значение ключа доступно различным частям установщика с помощью именованного свойства. Условие запуска использует свойство, определенное условием поиска, для проверка определенного значения.

  5. В редакторе условий запуска (OfficeAddInSetup) выберите условие поиска RegistryEntry1 , щелкните условие правой кнопкой мыши и выберите окно свойств.

  6. В окне Свойства задайте следующие свойства.

    1. Задайте значение (Имя) для поиска среды выполнения VSTO 2010.
    2. Измените значение свойства на VSTORUNTIMEREDIST.
    3. Задайте для параметра RegKey значение SOFTWARE\Microsoft\VSTO Runtime Setup\v4R
    4. Оставьте корневое свойство равным vsdrrHKLM.
    5. Измените свойство Value на Version.
  7. В редакторе условий запуска (OfficeAddInSetup) выберите условие запуска Condition1 , щелкните условие правой кнопкой мыши и выберите окно свойств.

  8. В окне Свойства задайте следующие свойства.

    1. Задайте значение (имя) для проверки доступности среды выполнения VSTO 2010.

    2. Измените значение условия на VSTORUNTIMEREDIST>="10.0.30319"

    3. Оставьте свойство InstallURL пустым.

    4. Установите для параметра "Сообщение" значение "Инструменты Visual Studio 2010 для среды выполнения Office" не установлено. Выполните Setup.exe, чтобы установить надстройку.

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

      Рис. 8. Окно свойств для условия запуска доступности среды выполнения проверки

Условие запуска, указанное выше, явно проверка для присутствия среды выполнения VSTO при установке пакета начальной загрузки.

Настройка условия запуска для обнаружения среды выполнения VSTO, установленной Office

  1. В редакторе условий запуска (OfficeAddInSetup) щелкните правой кнопкой мыши целевой компьютер поиска и выберите команду "Добавить поиск реестра".

  2. Выберите условие поиска RegistryEntry1, щелкните условие правой кнопкой мыши и выберите окно свойств.

  3. В окне Свойства задайте следующие свойства.

    1. Задайте значение (Имя) для поиска среды выполнения VSTO Для Office.
    2. Измените значение свойства на OfficeRuntime.
    3. Задайте для параметра RegKey значение SOFTWARE\Microsoft\VSTO Runtime Setup\v4.
    4. Оставьте корневое свойство равным vsdrrHKLM.
    5. Измените свойство Value на Version.
  4. В редакторе условий запуска (OfficeAddInSetup) выберите условие запуска среды выполнения VSTO 2010, определенное ранее, щелкните условие правой кнопкой мыши и выберите окно свойств.

  5. Измените значение свойства Condition на VSTORUNTIMEREDIST >="10.0.30319" ИЛИ OFFICERUNTIME>="10.0.21022". Номера версий могут отличаться для вас в зависимости от версий среды выполнения, необходимых надстройке.

    Снимок экрана: свойства Windows для условия запуска

    Рис. 9. Свойства Windows для доступности среды выполнения с помощью Redist или условия запуска Office

Если надстройка предназначена для платформа .NET Framework 4 или более поздней версии, Типы внутри основных сборок взаимодействия (PIA), на которые ссылается ссылка, можно внедрить в сборку VSTO.

Чтобы проверка, если типы взаимодействия будут внедрены в надстройку, выполните следующие действия:

  1. Разверните узел ссылок в Обозреватель решений
  2. Выберите одну из ссылок на PIA, например Office.
  3. Просмотр окон свойств путем нажатия клавиши F4 или выбора свойств в контекстном меню сборок.
  4. Проверьте значение типов взаимодействия внедрения свойства.

Если для значения задано значение True, то внедренные типы можно перейти к разделу проекта установки.

Дополнительные сведения см. в разделе "Эквивалентность типов" и "Внедренные типы взаимодействия"

Настройка условий запуска для обнаружения того, что для личных данных Office

  1. В редакторе условий запуска (OfficeAddInSetup) щелкните правой кнопкой мыши требования на целевом компьютере и нажмите кнопку "Добавить условие запуска установщика Windows". Это условие запуска ищет office PIA, выполнив поиск определенного идентификатора компонента.

  2. Щелкните правой кнопкой мыши поиск компонента1 и щелкните окно свойств, чтобы отобразить свойства условия запуска.

  3. В окне свойств задайте следующие свойства:

    1. Измените значение свойства (Name) на поиск общей PIA Office
    2. Измените значение ComponentID на идентификатор компонента для используемого компонента Office. Список идентификаторов компонентов можно найти в таблице ниже, например {64E2917E-AA13-4CA4-BFFE-EA6EDA3AFCB4}.
    3. Измените значение свойства наHASSHAREDPIA.
  4. В редакторе "Условия запуска" (OfficeAddInSetup) щелкните правой кнопкой мыши условие1 и щелкните окно свойств, чтобы отобразить свойства условия запуска.

  5. Измените эти свойства условия1:

    1. Измените (имя) на проверку доступности общей PIA Office.
    2. Измените условие на HASSHAREDPIA.
    3. Оставьте installUrl пустым.
    4. Изменить сообщение на обязательный компонент для взаимодействия с Excel недоступен. Выполните setup.exe.

    Снимок экрана: окно свойств для условия запуска общей PIA Office

    Рис. 10. Окно свойств для условия запуска общей PIA Office

Идентификаторы компонентов основных сборок взаимодействия для Microsoft Office

Основная сборка взаимодействия Office 2010 Office 2013 Office 2013 (64-разрядная версия) Office 2016 Office 2016 (64-разрядная версия)
Excel {EA7564AC-C67D-4868-BE5C-26E4FC2223FF} {C8A65ABE-3270-4FD7-B854-50C8082C8F39} {E3BD1151-B9CA-4D45-A77E-51A6E0ED322A} {C845E028-E091-442E-8202-21F596C559A0} {C4ACE6DB-AA99-401F-8BE6-8784BD09F003}
InfoPath {4153F732-D670-4E44-8AB7-500F2B576BDA} {0F825A16-25B2-4771-A497-FC8AF3B355D8} {C5BBD36E-B320-47EF-A512-556B99CB7E41} - -
Outlook {1D84439-3DAE-413E-BC13-62D6A52816B2} {F9F828D5-9F0B-46F9-9E3E-9C59F3C5E136} {7824A03F-28CC-4371-BC54-93D15EFC1E7F} {2C6C511D-4542-4E0C-95D0-05D406032F2} {7C6D92EF-7B45-46E5-8670-819663220E4E}
PowerPoint {EECBA6B8-3A62-44AD-99EB-8666265466F9} {813139AD-6DAB-4DDDD-8C6D-0CA30D073B41} {05758318-BCFD-4288-AD8D-81185841C235} {9E73CEA4-29D0-4D16-8FB9-5AB17387C960} {E0A76492-0FD5-4EC2-8570-AE1BAA61DC88}
Visio {3EA123B5-6316-452E-9D51-A489E06E2347} {C1713368-12A8-41F1-ACA1-934B01AD6EEB} {2CC0B221-22D2-4C15-A9FB-DE818E51AF75} {A4C55BC1-B94C-4058-B15C-B9D4AE540AD1} {2D4540EC-2C88-4C28-AE88-2614B5460648}
Word {8B74A499-37F8-4DEA-B5A0-D72FC501CEFA} {9FE736B7-B1EE-410C-8D07-082891C3DAC8} {13C07AF5-B206-4A48-BB5B-B8022333E3CA} {30CAC893-3CA4-494C-A5E9-A99141352216} {DC5CCACD-A7AC-4FD3-9F70-9454B5DE5161}
Microsoft Forms 2.0 {B2279272-3FD2-434D-B94E-E4E0F8561AC4} {B2279272-3FD2-434D-B94E-E4E0F8561AC4} {A5A30117-2D2A-4C5C-B3C8-8897AC32C2AC} - -
Microsoft Graph {011B9112-EBB1-4A6C-86CB-C2FDC9EA7B0E} {52DA4B37-B8EB-4B7F-89C1-824654CE4C70} {24706F33-F0CE-4EB4-BC91-9E935394F510} - -
Смарт-тег {7102C98C-EF47-4F04-A227-FE33650BF954} {487A7921-EB3A-4262-BB5B-A5736B732486} {74EFC1F9-747D-4867-B951-EFCF29F51AF7} - -
Общий доступ к Office {64E2917E-AA13-4CA4-BFFE-EA6EDA3AFCB4} {6A174BDB-0049-4D1C-86EF-3114CB0C4C4E} {76601EBB-44A7-49EE-8DE3-7B7B9D7EBB05} {68477CB0-662A-48FB-AF2E-9573C92869F7} {625F5772-C1B3-497E-8ABE-7254EDB00506}
Project {957A4EC0-E67B-4E86-A383-6AF7270B216A} {1C50E422-24FA-44A9-A120-E88280C8C341} {706D7F44-8231-489D-9B25-3025ADE9F114} {0B6EDA1D-4A15-4F88-8B20-EA6528978E4E} {107BCD9A-F1DC-4004-A44-33706FC10058}

Снимок экрана: условия окончательного запуска

Рис. 11. Условия окончательного запуска

Вы можете дополнительно уточнить условия запуска для установки ExcelAddIn. Например, возможно, полезно проверка, если установлена фактическая целевая Приложение Office ликация.

Создание проекта установки

  1. В Обозреватель решений щелкните правой кнопкой мыши проект OfficeAddInSetup и нажмите кнопку "Сборка".
  2. С помощью Windows Обозреватель перейдите в выходной каталог проекта OfficeAddInSetup и перейдите в папку "Выпуск" или "Отладка" в зависимости от выбранной конфигурации сборки. Скопируйте все файлы из папки в расположение, к которому пользователи могут получить доступ.

Проверка установки ExcelAddIn

  1. Перейдите в расположение, в котором вы скопировали OfficeAddInSetup .
  2. Дважды щелкните файл setup.exe, чтобы установить надстройку OfficeAddInSetup . Примите все отображаемые условия лицензионного соглашения и завершите работу мастера установки, чтобы установить надстройку на пользовательском компьютере.

Решение Excel Office должно устанавливать и запускаться из расположения, указанного во время установки.

Дополнительные требования к решениям на уровне документа

Для развертывания решений на уровне документа требуется несколько различных действий по настройке в проекте установки установщика Windows.

Ниже приведен список основных шагов, необходимых для развертывания решения на уровне документа:

  • Создайте проект установки Visual Studio.
  • Добавьте первичные выходные данные решения на уровне документа. Основные выходные данные также включают документ Microsoft Office.
  • Добавьте манифесты развертывания и приложения в виде свободных файлов.
  • Исключите зависимые компоненты из пакета установщика (за исключением сборок служебных программ).
  • Настройте пакеты необходимых компонентов.
  • Настройте условия запуска.
  • Создайте проект установки и скопируйте результаты в расположение развертывания.
  • Разверните решение на уровне документа на пользовательском компьютере, выполнив настройку.
  • При необходимости обновите настраиваемые свойства документа.

Изменение расположения развернутого документа

Свойства внутри документа Office используются для поиска решений на уровне документа. Если документ установлен в ту же папку, что и сборка VSTO, изменения не требуются. Однако если он установлен в другую папку, эти свойства необходимо обновить во время установки.

Дополнительные сведения об этих свойствах документа см. в обзоре настраиваемых свойств документа.

Чтобы изменить эти свойства, необходимо использовать настраиваемое действие во время установки.

В следующем примере используется решение уровня документа с именем ExcelWorkbookProject и проект установки с именем ExcelWorkbookSetup. Проект ExcelWorkbookSetup настраивается с помощью описанных выше шагов, за исключением настройки разделов реестра.

Добавление проекта пользовательского действия в решение Visual Studio

  1. Добавьте новый проект консоли .NET в решение, щелкнув правой кнопкой мыши проект развертывания документов Office в Обозреватель решений

  2. Разверните узел "Добавить " и нажмите кнопку "Создать проект".

  3. Выберите шаблон консольного приложения и назовите проект AddCustomizationCustomAction.

    Снимок экрана: Обозреватель решений — AddCustomizationCustomAction

    Рис. 12. Обозреватель решений — AddCustomizationCustomAction

  4. Добавьте ссылку на эти сборки:

    1. System.ComponentModel
    2. System.Configuration.Install
    3. Microsoft.VisualStudio.Tools.Applications
    4. Microsoft.VisualStudio.Tools.Applications.ServerDocument
  5. Скопируйте этот код в Program.cs или Program.vb

    using System;
    using System.IO;
    using System.Collections;
    using System.ComponentModel;
    using System.Configuration.Install;
    using Microsoft.VisualStudio.Tools.Applications;
    using Microsoft.VisualStudio.Tools.Applications.Runtime;

    namespace AddCustomizationCustomAction
    {
        [RunInstaller(true)]
        public class AddCustomizations : Installer
        {
            public AddCustomizations() : base() { }

            public override void Install(IDictionary savedState)
            {
                base.Install(savedState);

                //Get the CustomActionData Parameters
                string documentLocation = Context.Parameters.ContainsKey("documentLocation") ? Context.Parameters["documentLocation"] : String.Empty;
                string assemblyLocation = Context.Parameters.ContainsKey("assemblyLocation") ? Context.Parameters["assemblyLocation"] : String.Empty;
                string deploymentManifestLocation = Context.Parameters.ContainsKey("deploymentManifestLocation") ? Context.Parameters["deploymentManifestLocation"] : String.Empty;
                Guid solutionID = Context.Parameters.ContainsKey("solutionID") ? new Guid(Context.Parameters["solutionID"]) : new Guid();

                string newDocLocation = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), Path.GetFileName(documentLocation));

                try
                {
                    //Move the file and set the Customizations
                    if (Uri.TryCreate(deploymentManifestLocation, UriKind.Absolute, out Uri docManifestLocationUri))
                    {
                        File.Move(documentLocation, newDocLocation);
                        ServerDocument.RemoveCustomization(newDocLocation);
                        ServerDocument.AddCustomization(newDocLocation, assemblyLocation,
                                                        solutionID, docManifestLocationUri,
                                                        true, out string[] nonpublicCachedDataMembers);
                    }
                    else
                    {
                        LogMessage("The document could not be customized.");
                    }
                }
                catch (ArgumentException)
                {
                    LogMessage("The document could not be customized.");
                }
                catch (DocumentNotCustomizedException)
                {
                    LogMessage("The document could not be customized.");
                }
                catch (InvalidOperationException)
                {
                    LogMessage("The customization could not be removed.");
                }
                catch (IOException)
                {
                    LogMessage("The document does not exist or is read-only.");
                }
            }

            public override void Rollback(IDictionary savedState)
            {
                base.Rollback(savedState);
                DeleteDocument();
            }
            public override void Uninstall(IDictionary savedState)
            {
                base.Uninstall(savedState);
                DeleteDocument();
            }
            private void DeleteDocument()
            {
                string documentLocation = Context.Parameters.ContainsKey("documentLocation") ? Context.Parameters["documentLocation"] : String.Empty;

                try
                {
                    File.Delete(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), Path.GetFileName(documentLocation)));
                }
                catch (Exception)
                {
                    LogMessage("The document doesn't exist or is read-only.");
                }
            }
            private void LogMessage(string Message)
            {
                if (Context.Parameters.ContainsKey("LogFile"))
                {
                    Context.LogMessage(Message);
                }
            }

            static void Main() { }
            }
    }

Чтобы добавить настройку в документ, необходимо иметь идентификатор решения для решения на уровне документа VSTO. Это значение извлекается из файла проекта Visual Studio.

Получение идентификатора решения

  1. В меню "Сборка" щелкните "Создать решение", чтобы создать решение на уровне документа и добавить свойство идентификатора решения в файл проекта.

  2. В Обозреватель решений щелкните правой кнопкой мыши проект excelWorkbookProject на уровне документа

  3. Щелкните "ВыгрузитьProject ", чтобы получить доступ к файлу проекта из Visual Studio.

    Снимок экрана: Обозреватель решений выгрузка решения для документов Excel

    Рис. 13. Выгрузка решения для документов Excel

  4. В Обозреватель решений щелкните правой кнопкой мыши ExcelWorkbookProject и щелкните EditExcelWorkbookProject.vbproj или Edit ExcelWorkbookProject.csproj.

  5. В редакторе ExcelWorkbookProject найдите элемент SolutionID внутри элемента PropertyGroup.

  6. Скопируйте значение GUID этого элемента.

    Получение идентификатора решения

    Рис. 14. Получение идентификатора решения

  7. В Обозреватель решений щелкните правой кнопкой мыши ExcelWorkbookProject и щелкните "Перезагрузить проект".

  8. Нажмите кнопку "Да " в диалоговом окне, которое отображается для закрытия редактора ExcelWorkbookProject .

  9. Идентификатор решения будет использоваться в настраиваемом действии установки.

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

Настройка проекта установки

  1. В Обозреватель решений щелкните правой кнопкой мыши ExcelWorkbookSetup, разверните узел "Добавить" и щелкните "Вывод проекта".

  2. В диалоговом окне "Добавить группу выходных данных проекта" в списке "Проект" нажмите кнопку AddCustomizationCustomAction.

  3. Выберите первичный вывод и нажмите кнопку "ОК ", чтобы закрыть диалоговое окно и добавить сборку, содержащую настраиваемое действие в проект установки.

    Снимок экрана: настраиваемое действие манифеста документа: добавление группы выходных данных проекта

    Рис. 15. Пользовательское действие манифеста документа. Добавление группы выходных данных проекта

  4. В Обозреватель решений щелкните правой кнопкой мыши ExcelWorkbookSetup.

  5. Разверните представление и щелкните "Настраиваемые действия".

  6. В редакторе Custom Actions(ExcelWorkbookSetup) щелкните правой кнопкой мыши настраиваемые действия и нажмите кнопку "Добавить настраиваемое действие".

  7. В диалоговом окне "Выбор элемента в проекте" в списке "Внешний вид" щелкните "Папка приложения". Выберите первичный вывод из AddCustomizationCustomizationCustomAction(active) и нажмите кнопку ОК , чтобы добавить настраиваемое действие на шаг установки.

  8. В узле установки щелкните правой кнопкой мыши первичные выходные данные из AddCustomizationCustomAction(Active) и нажмите кнопку "Переименовать". Назовите пользовательский документ копирования документа в мои документы и вложите настройку.

  9. В узле "Удалить" щелкните правой кнопкой мыши первичные выходные данные из AddCustomizationCustomAction(Active) и нажмите кнопку "Переименовать". Назовите настраиваемое действие "Удалить документ из папки "Документы".

    Снимок экрана: окно пользовательских действий манифеста документа

    Рис. 16. Пользовательские действия манифеста документа

  10. В редакторе настраиваемых действий (ExcelWorkbookSetup) щелкните правой кнопкой мыши документ "Копировать документ в мои документы" и вложите настройку и нажмите кнопку "Окна свойств".

  11. В окне "Свойства CustomActionData" введите расположение библиотеки DLL настройки, манифеста развертывания и расположения документа Microsoft Office. Идентификатор решения также необходим.

  12. Если вы хотите регистрировать ошибки установки в файл, добавьте параметр LogFile. s

    /assemblyLocation="[INSTALLDIR]ExcelWorkbookProject.dll" /deploymentManifestLocation="[INSTALLDIR]ExcelWorkbookProject.vsto" /documentLocation="[INSTALLDIR]ExcelWorkbookProject.xlsx" /solutionID="Your Solution ID" /LogFile="[TARGETDIR]Setup.log"
    

    Снимок экрана: пользовательское действие для копирования документа в мои документы окно свойств

    Рис. 17. Пользовательское действие для копирования документа в мои документы

  13. Настраиваемое действие для удаления требует имени документа, вы можете указать, что с помощью того же параметра documentLocation в CustomActionData

    /documentLocation="[INSTALLDIR]ExcelWorkbookProject.xlsx"
    
  14. Скомпилируйте и разверните проект ExcelWorkbookSetup .

  15. Просмотрите папку "Мои документы" и откройте файл ExcelWorkbookProject.xlsx.

Дополнительные ресурсы

Практическое руководство. Установка среды выполнения набор средств Visual Studio для Office

Office Primary Interop Assemblies

Записи реестра для надстроек VSTO

Custom Document Properties Overview

Указание областей форм в реестре Windows

Granting Trust to Documents

Об авторах

Wouter van Vugt — это microsoft MVP с технологиями Office Open XML и независимым консультантом, ориентированным на создание Бизнес-приложение Office ликации (OBAs) с помощью SharePoint, Microsoft Office и связанных технологий .NET. Wouter — это частое участник для сайтов сообщества разработчиков, таких как MSDN. Он опубликовал несколько белых документов и статей, а также книгу, доступную в строке Open XML: Объяснил электронную книгу. Wouter является основателем Code-Counsel, голландской компании, ориентированной на доставку передовых технических материалов через различные каналы. Вы можете узнать больше о Wouter, прочитав свой блог.

Теду Паттисон является MVP SharePoint, автором, тренером и основателем Ted Pattison Group. Осенью 2005 года Тед был нанят группой евангелизации платформы разработчиков Майкрософт, чтобы создать учебный курс обучения разработчика По возрастанию для Windows SharePoint Services 3.0 и Microsoft Office SharePoint Server 2007. С тех пор Теда была полностью сосредоточена на обучении профессиональных разработчиков на технологиях SharePoint 2007. Тед закончил писать книгу для Microsoft Press под названием Внутри Windows SharePoint Services 3.0, которая посвящена использованию SharePoint в качестве платформы разработки для создания бизнес-решений. Тед также пишет столбец, ориентированный на разработчиков, для MSDN Magazine под названием Office Space.