Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What Component IDs should I search for to detect whether the Office 2010 PIA's are Installed

I'm creating a plug-in for Office 2010 and need to detect on install whether the Office 2010 PIA's are installed.

I have done this for 2003 and 2007 but cannot find the Component ID's for 2010 does anyone know what they are?

thanks, Ed

like image 737
Edward Avatar asked May 25 '10 10:05

Edward


2 Answers

Do a search for the component ID for the PIA (primary interop assembly) applicable to the component of office you need from the list below:

{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

E.g. if you are writing a Word add-in, then you only really need to check for the PIA with the GUID {8B74A499-37F8-4DEA-B5A0-D72FC501CEFA}

From here

Microsoft have recently released the PIAs for 2010 seperately. Available here

If you need to support Office 2013, the component Ids are documented here: Office 2013 PIA component Ids

like image 181
John Sibly Avatar answered Nov 09 '22 06:11

John Sibly


There is no need to install PIA separately or check the version of installed PIA if you target .NET Framework 4 and above. Check this article.

When you compile an add-in project that targets the .NET Framework 4, by default the type information for all the PIA types referenced in the add-in code is embedded in the add-in assembly. At run time, this type information is used to resolve calls to the underlying COM type, rather than relying on type information in the PIAs.

Just check in your project that the reference to Microsoft.Office.Interop.Excel has the correct version and EmbedInteropTypes set to true.

like image 36
Vojtěch Dohnal Avatar answered Nov 09 '22 06:11

Vojtěch Dohnal