2012-05-21 2 views
0

Я получаю следующее сообщение об ошибке при компиляции проекта Boo, который использует Interop:Проблемы с сигнатурами методов Microsoft.Office.Core

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, single, single, single, single) '. (BCE0017)

Как видите, подписи одинаковы, кажется, что проблема заключается в распознавании MsoTextOrientation.

Я установил PIA на 2010 год, могу добавить ссылку на COM «Библиотека объектов Microsoft Office 14.0» и импортировать из нее пространство имён Microsoft.Office.Core. Он просто разваливается на подпись метода.

Я использую компилятор boo версии 0.9.1.3287, встроенный в Sharpdevelop 3.2.1.

Любые идеи?

ответ

2

OK,

Оказывается, есть два способа приведения имен Microsoft.Office.Core в проект:

  1. Импорт «Microsoft Office 14,0 Библиотека объектов» от COM (отображается как «офис» в ваших ссылках)
  2. Импорт «офис» из GAC (отображается как «офис» в ваших ссылках)

Я не знаю, почему это перечислено как просто «офис» в GAC Добавить список ссылок вместо «Microsoft.Office.Core». Вот почему я пропустил это и закончил тем, что смотрел в COM вместо этого, и увидев, что пространство имён импортировано отлично, я думал, что все в порядке ...

Я не знаю достаточно о том, как обрабатываются одинаковые пространства имен из разных сборок, но есть возможно ли, что типы отмечены как несовместимые, - это просто проблема boo/Sharpdevelop? Я ожидал бы, что намного больше людей будет иметь эту проблему, это случилось с визуальной студией/C# ...