我使用VS 2010为office 2010构建了一个加载项。我已经跟着these steps创建了msi但是当我尝试使用Office 2013安装它时,我收到一个错误告诉我:
“与excel交互所需的组件不可用......”
我是否需要链接到Office 2013程序集以部署到Office 2013?
编辑:here使用VSTO V4应该使其兼容,但仍无效。
答案 0 :(得分: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,即{FAB10E66-B22C-4274-8647-7CA1BA5EF30F}时,似乎有问题的Windows Installer Launcher条件有效。它是Office 2007组件ID。我已经使用Office 2007和Office 2013对其进行了测试,并且两个设置都没有任何错误地进行,并且加载项正在运行。