【发布时间】:2011-05-03 14:15:38
【问题描述】:
是否可以使用 VSTO 开发一个可以部署到 excel 2007 和 2010 的 excel 插件?
任何指向有关此主题的详细资源的链接也将不胜感激 - 我似乎无法在 google 上找到任何专门解决此问题的内容。
我正在使用 Visual Studio 2010 开发 C# excel 插件。
【问题讨论】:
是否可以使用 VSTO 开发一个可以部署到 excel 2007 和 2010 的 excel 插件?
任何指向有关此主题的详细资源的链接也将不胜感激 - 我似乎无法在 google 上找到任何专门解决此问题的内容。
我正在使用 Visual Studio 2010 开发 C# excel 插件。
【问题讨论】:
我已经 answered this 用于 Word,但它也适用于 Excel:
如果您想部署到 Office 2010 和 2007,您必须添加对 v12.0 程序集(Microsoft.Office.Interop.Excel 和 办公室)。
现在仍然存在您的插件将需要 2007 PIA 的问题,但如果您的目标计算机上只有 Office 2010(因为它们具有 Office 2007 作为先决条件),它们将不会安装。
要解决此问题,您必须为这两个 dll(在引用属性中)设置 Embed Interop Assemblies = true,并为您无法再直接引用的类型使用 dynamic。
这会导致 Intellisense 找不到方法等出现一些“奇怪”,但这应该不是一个大问题 - 至少现在不再需要 PIA,并且您的插件将在 2007 年和 2010 年部署(您必须还要照顾安装程序,但这是另一回事)。
这有点乱,但如果你正在使用 VSTO,我想你已经习惯了这种东西 :-)
【讨论】:
Embed Interop Types,需要将其设置为true