Использование COM DLL с FSI - PullRequest
1 голос
/ 23 марта 2011

Есть ли в FSI способ, с помощью которого я могу ссылаться и использовать зарегистрированные компоненты COM?

В обычной скомпилированной программе .fs я могу просто ссылаться на рассматриваемый компонент и затем открывать соответствующие сгенерированные пространства имен,Однако в файле .fsx я не могу воспроизвести это поведение.Я пытался использовать #r для прямой ссылки на .dll, и я пытался использовать #I для указания на каталог, за которым следовал #r с «дружественным» именем библиотеки и именем файла, но, похоже, ничего не работает.

Вы можете ссылаться только на сборки .NET из .fsx?Я действительно не хочу писать / gen сборку оболочки.Я надеюсь, что мог бы быть способ заставить FSI предпринять любые шаги, которые предпринимает обычный исполняемый файл, чтобы обеспечить уровень взаимодействия.

1 Ответ

3 голосов
/ 23 марта 2011

Когда вы добавляете ссылку на COM-компонент в Visual Studio, он вызывает инструмент для создания оболочки (стандартная сборка .NET), а затем ссылается на оболочку.

Если вы хотите сослаться на COM из fsx, вам нужно сгенерировать оболочку самостоятельно (или найти ту, сгенерированную Visual Studio?) Инструмент, который генерирует оболочку с именем TlbImp.exe (см. Импорт библиотеки типов в MSDN ).

...