将COM DLL与FSI一起使用

时间:2011-03-23 15:30:36

标签: f# f#-interactive f#-scripting

FSI中是否有可以引用和使用已注册COM组件的方法?

在正常的.fs编译程序中,我可以简单地引用有问题的组件,然后打开相关的生成的命名空间。但是,在.fsx文件中,我似乎无法复制此行为。我已经尝试使用#r直接引用.dll,我尝试使用#I指向#r后面的目录,其中包含库的“友好”名称和文件名,但似乎没有任何效果。

您是否只能从.fsx引用.NET程序集?我真的不想写/ gen包装程序集。我希望可能有办法迫使FSI采取正常可执行文件所需的任何步骤来提供互操作层。

1 个答案:

答案 0 :(得分:3)

在Visual Studio中添加对COM组件的引用时,它会调用一个工具来生成包装器(标准.NET程序集),然后引用包装器。

如果你想从fsx引用COM,你需要自己生成包装器(或找到Visual Studio生成的包装器?)生成包装器的工具TlbImp.exe (见Type Library Importer on MSDN)。