Office Addins的向前兼容性

时间:2013-11-26 09:22:34

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

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

  

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

我是否需要链接到Office 2013程序集以部署到Office 2013?

编辑here使用VSTO V4应该使其兼容,但仍无效。

1 个答案:

答案 0 :(得分:2)

按照上述教程,您自己创建了一个Windows Installer Launcher条件,该条件会产生上述错误。您应该删除按组件ID检查特定PIA组件的条件。

Condiotions to remove

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

enter image description here

您必须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

您的设置将如下所示:

enter image description here

不,您不需要链接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

enter image description here

这是删除这些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对其进行了测试,并且两个设置都没有任何错误地进行,并且加载项正在运行。