我使用VS 2010为office 2010构建了一个加载项。我已经关注these steps来创建msi但是当我尝试使用Office 2013安装它时,我收到一个错误告诉我:
“与excel交互所需的组件不可用......”
我是否需要链接到Office 2013程序集以部署到Office 2013?
编辑:它说here使用VSTO V4应该使它兼容但它仍然无法正常工作。
您已按照上述教程创建了一个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对其进行了测试,并且两个设置都没有任何错误地进行,并且加载项正在运行。