【问题标题】:Forward Compatibility of Office AddinsOffice 插件的向前兼容性
【发布时间】:2013-12-11 08:22:27
【问题描述】:

我已经使用 VS 2010 为 Office 2010 构建了一个加载项。我按照 these steps 创建了 msi,但是当我尝试使用 office 2013 安装它时,我收到一条错误消息,告诉我:

“与excel交互所需的组件不可用...”

是否需要链接到 Office 2013 程序集才能为 Office 2013 部署?

编辑:上面写着 here 使用 VSTO V4 应该使它兼容,但它仍然不起作用。

【问题讨论】:

    标签: .net visual-studio-2010 c#-4.0 excel-addins excel-2013


    【解决方案1】:

    您已按照上述教程创建了产生上述错误的 Windows Installer 启动器条件。您应该删除通过组件 ID 检查特定 PIA 组件的条件。

    不要检查并产生错误的错误,而是添加 VSTO 和 PIA 作为先决条件,您也可以将其包含在您的设置中:

    您必须download Microsoft Office 2010 Primary Interop Assemblies Bootstrapper Package 并将其安装在您的开发机器上。 这使您能够将 PIA 2010 作为安装项目的先决条件添加,这正是您所需要的。

    此外,如果您需要在安装中包含 PIA 2010,则必须复制 Microsoft Office 2010: Primary Interop Assemblies Redistributable(所有提取的文件)到 C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\Office2010PIARedist.

    您的设置将如下所示:

    不,您不需要链接 2013 PIA 以使您的解决方案在 Office 2013 中运行,VSTO 和 PIA 2010 应该与 Excel 2013 一起使用 - 但是 Excel 2013 应用程序的额外功能自然缺少那里。但如果您想使用VSTO 2012,则需要升级到 VS 2012 或 2013。

    因此您可以继续使用 VSTO 2010 for Office 2013。

    But also look at this article.

    编译面向 .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 条件的一个非常好的理由。


    备注:当我输入another component ID form here,即 {FAB10E66-B22C-4274-8647-7CA1BA5EF30F} 时,似乎有问题的 Windows Installer Launcher 条件有效。它是 Office 2007 组件 ID。我已经使用 Office 2007 和 Office 2013 对其进行了测试,并且两种设置都继续进行,没有任何错误,并且加载项正在运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多