Вызов F # из Excel 2002/03: «Ошибка автоматизации»

#.net #excel #vba #f# #activex

#.net #excel #vba #f# #activex

Вопрос:

Я пытаюсь вызвать F # из Excel (2002), но получаю «Ошибку автоматизации» при попытке создать новый экземпляр моего класса. Я запускаю regasm после сборки, добавляю ссылку, помещаю Excel.Exe.Config в папку Office10 (с помощью .Сетевая версия 4.0.30319.1) и это мой класс:

 [<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Runtime.InteropServices.Guid "F348766A-B63D-41FE-824C-27989266A535">]
type Provider () =
    member __.Compile s = Compiler.compile s
  

И модуль компилятора имеет свои собственные атрибуты с другим идентификатором Guid.
Ошибка находится в этой строке:

 Set p = New MCTE.Provider
  

Есть идеи?

Комментарии:

1. Сообщение об ошибке не очень полезно:-(.. есть возможность найти более подробную информацию об ошибке? Кроме того, насколько сложен ваш код F #? Вы пробовали то же самое в C #?

2. Создал пустой проект C #, один класс (с этими атрибутами, другим идентификатором GUID), один чрезвычайно простой метод — все еще сбой в конструкторе.

3. Вы запускаете regasm с параметром / codebase? Является ли ваш COM-объект x86 или x64?