Office Addins的向前兼容性

问题描述 投票:3回答:1

我使用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个回答
2
投票

您已按照上述教程创建了一个Windows Installer Launcher条件,该条件会产生上述错误。您应该删除按组件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时,似乎有问题的Windows Installer Launcher条件有效,即{FAB10E66-B22C-4274-8647-7CA1BA5EF30F}。它是Office 2007组件ID。我已经使用Office 2007和Office 2013对其进行了测试,并且两个设置都没有任何错误地进行,并且加载项正在运行。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.