Какие идентификаторы компонентов следует искать, чтобы определить, установлены ли Office 2010 PIA - PullRequest
12 голосов
/ 25 мая 2010

Я создаю подключаемый модуль для Office 2010 и должен при установке определить, установлены ли Office 2010 PIA.

Я сделал это в 2003 и 2007 годах, но не могу найти идентификаторы компонентов для 2010 года. Кто-нибудь знает, кто они?

спасибо, Ed

Ответы [ 2 ]

13 голосов
/ 25 мая 2010

Выполните поиск идентификатора компонента для PIA (первичной сборки взаимодействия), применимой к нужному компоненту офиса, из списка ниже:

{EA7564AC-C67D-4868-BE5C-26E4FC2223FF}   Excel
{4153F732-D670-4E44-8AB7-500F2B576BDA}   InfoPath
{1D844339-3DAE-413E-BC13-62D6A52816B2}   Outlook
{EECBA6B8-3A62-44AD-99EB-8666265466F9}   PowerPoint
{3EA123B5-6316-452E-9D51-A489E06E2347}   Visio
{8B74A499-37F8-4DEA-B5A0-D72FC501CEFA}   Word
{957A4EC0-E67B-4E86-A383-6AF7270B216A}   Project
{B2279272-3FD2-434D-B94E-E4E0F8561AC4}   Forms 2.0
{011B9112-EBB1-4A6C-86CB-C2FDC9EA7B0E}   Graph
{7102C98C-EF47-4F04-A227-FE33650BF954}   Smart Tag
{64E2917E-AA13-4CA4-BFFE-EA6EDA3AFCB4}   Office Shared

например. если вы пишете надстройку Word, вам действительно нужно проверить PIA только с GUID {8B74A499-37F8-4DEA-B5A0-D72FC501CEFA}

С здесь

Microsoft недавно выпустила PIA на 2010 год отдельно. В наличии здесь

Если вам требуется поддержка Office 2013, идентификаторы компонентов описаны здесь: Идентификаторы компонентов Office 2013 PIA

1 голос
/ 18 октября 2014

Нет необходимости устанавливать PIA отдельно или проверять версию установленного PIA, если вы ориентируетесь на .NET Framework 4 и выше. Проверьте эту статью .

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

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

...