Прямая совместимость надстроек Office

Я создал надстройку для Office 2010 с помощью VS 2010. Я следовал этим шаги для создания msi, но когда я попытался установить его с Office 2013, я получаю сообщение об ошибке:

"Необходимый компонент для взаимодействия с Excel недоступен..."

Нужно ли связываться со сборками Office 2013 для развертывания Office 2013?

РЕДАКТИРОВАТЬ: Там написано здесь, что использование VSTO V4 должно сделать его совместимым, но он по-прежнему не работает.


person Pat Mustard    schedule 26.11.2013    source источник


Ответы (1)


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

Условия удаления

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

введите здесь описание изображения

Вам потребуется загрузить загрузочный пакет Microsoft Office 2010 Primary Interop Assemblies и установите его на свой компьютер для разработки. Это позволяет добавить PIA 2010 в качестве предварительного условия в проект установки, что вам и нужно.

Кроме того, если вам нужно включить PIA 2010 в вашу установку, вам придется скопировать Microsoft Office 2010: распространяемые основные сборки взаимодействия (все извлеченные файлы) в C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\Office2010PIARedist.

Тогда ваша установка будет выглядеть примерно так:

введите здесь описание изображения

Нет, вам не нужно связывать PIA 2013, чтобы ваше решение работало в Office 2013, VSTO и PIA 2010 должны работать с Excel 2013, но дополнительные функции приложения Excel 2013, естественно, отсутствуют. Но вам нужно будет перейти на VS 2012 или 2013, если вы хотите использовать VSTO 2012.

Таким образом, вы можете продолжать использовать VSTO 2010 для Office 2013.

Но также посмотрите эту статью.

При компиляции проекта надстройки, ориентированного на .NET Framework 4, по умолчанию информация о типах для всех типов PIA, на которые есть ссылки в коде надстройки, внедряется в сборку надстройки. В во время выполнения эта информация о типе используется для разрешения вызовов базового типа COM, а не на информацию о типе в PIA.

Так что, в конце концов, это означает, что если вы нацелены на .NET 4, вам вообще не нужно беспокоиться о PIA на целевом компьютере. Таким образом, вам также не нужно добавлять Microsoft Office 2010 PIA в качестве предварительного условия. Тем не менее вам потребуется предварительная среда выполнения VSTO.

Просто убедитесь, что ваша ссылка на Microsoft.Office.Interop.Excel имеет правильную версию, а EmbedInteropTypes установлена ​​на true:

введите здесь описание изображения

Это действительно веская причина для удаления этих Search for Office 2010 Shared PIA условий.


Примечание. Кажется, что проблемное условие запуска установщика Windows работает, когда я вхожу в другая форма ID компонента здесь, а именно {FAB10E66-B22C-4274-8647-7CA1BA5EF30F}. Это идентификатор компонента Office 2007. Я протестировал его с Office 2007 и Office 2013, и обе установки прошли без ошибок, и надстройка работает.

person Vojtěch Dohnal    schedule 18.10.2014