0

编译使用互操作的 Boo 项目时出现以下错误:

textbox = _ActiveWorkSheet.Shapes.AddTextbox(MsoTextOrientation.msoTextOrientationHorizontal, left, top, width, height)

方法 'Microsoft.Office.Interop.Excel.Shapes.AddTextbox(Microsoft.Office.Core.MsoTextOrientation, single, single, single, single)' 的最佳重载与参数列表 '(Microsoft.Office.Core .MsoTextOrientation,单,单,单,单)'。(BCE0017)

如您所见,签名相同,问题似乎在于识别 MsoTextOrientation。

我为 2010 安装了 PIA,可以添加对 COM“Microsoft Office 14.0 对象库”的引用,并可以从中导入 Microsoft.Office.Core 命名空间。它只是在方法签名处分崩离析。

我正在使用 Sharpdevelop 3.2.1 中嵌入的 boo 编译器版本 0.9.1.3287。

有任何想法吗?

4

1 回答 1

2

好的,

事实证明,将 Microsoft.Office.Core 命名空间引入项目有两种方法:

  1. 从 COM 导入“Microsoft Office 14.0 对象库”(在您的参考资料中显示为“Office”)
  2. 从 GAC 导入“办公室”(在您的参考资料中显示为“办公室”)

我不知道为什么它在 GAC 添加参考列表中被列为“办公室”而不是“Microsoft.Office.Core”。这就是为什么我错过了它并最终转而查看 COM,并看到命名空间导入良好,我认为一切都很好......

我不太了解如何处理来自不同程序集的相同命名空间,但是这些类型是否有可能被标记为不兼容只是一个 boo/Sharpdevelop 问题?我希望更多的人会遇到这个问题,因为它发生在 Visual Studio/C#...

于 2012-05-22T14:12:10.017 回答