您已按照上述教程创建了产生上述错误的 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 对其进行了测试,并且两种设置都继续进行,没有任何错误,并且加载项正在运行。