我应该搜索哪些组件ID来检测Office 2010 PIA是否已安装?

12

我正在为 Office 2010 创建一个插件,并需要在安装时检测 Office 2010 PIA 是否已安装。

我已经为 2003 和 2007 做过这个工作,但是找不到 2010 年的 Component ID,请问有人知道吗?

谢谢, Ed

2个回答

13

在以下列表中搜索与您需要的Office组件相应的PIA(主要Interop Assembly)组件的组件ID:

{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插件,则只需要检查具有GUID {8B74A499-37F8-4DEA-B5A0-D72FC501CEFA}的PIA。

此处获取。

Microsoft最近已经单独发布了2010年的PIAs。可以在此处获取。

如果您需要支持Office 2013,则组件ID在此处Office 2013 PIA组件ID中有记录。


大家好,我安装了Office 2010 PIA,但没有安装Office 2010,我找不到上面列出的密钥。 - Peter Lee
嗨Peter-我下载了独立的msi以检查guid是否已更改,它们似乎相同。你提到了keys-请记住,这些不是注册表键或值,它们是代表安装在Windows中的组件的guid。因此,想法是在安装程序中对guid进行组件搜索,以查看所需的特定PIA是否存在于目标系统上。 - John Sibly

1
如果您的目标是.NET Framework 4或以上版本,则无需单独安装PIA或检查已安装PIA的版本。请参阅此文章

当编译一个针对.NET Framework 4的插件项目时,默认情况下将嵌入在插件程序集中引用的所有PIA类型的类型信息。运行时,使用此类型信息来解析对底层COM类型的调用,而不是依赖于PIAs中的类型信息。

只需检查您的项目中对Microsoft.Office.Interop.Excel的引用是否具有正确的版本,并将EmbedInteropTypes设置为true即可。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接