2011-03-23 78 views
1

FSI中有一种方法可以引用和使用注册的COM组件吗?在FSI中使用COM DLL

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

您是否只能从.fsx引用.NET程序集?我真的不想写/创建一个包装程序集。我希望可能有办法强制FSI采取正常可执行程序为了提供互操作层而采取的任何步骤。

回答

3

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

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

+0

谢谢Tomas,我曾经怀疑过! – 2011-03-23 17:21:05

+0

什么你不必自己做这个了? – akaphenom 2011-03-24 17:28:50