在FSI中使用COM DLL
问题描述:
FSI中有一种方法可以引用和使用注册的COM组件吗?在FSI中使用COM DLL
在正常的.fs编译程序中,我可以简单地引用相关组件,然后打开相关的生成名称空间。但是,在.fsx文件中,似乎无法复制此行为。我曾尝试使用#r直接引用.dll,并且我尝试使用#I指向后跟#r的目录,其中包含库的“友好”名称和文件名,但似乎没有任何效果。
您是否只能从.fsx引用.NET程序集?我真的不想写/创建一个包装程序集。我希望可能有办法强制FSI采取正常可执行程序为了提供互操作层而采取的任何步骤。
答
当您在Visual Studio中添加对COM组件的引用时,它会调用一个工具来生成一个包装器(标准.NET程序集),然后引用该包装器。
如果你想从fsx
引用COM,你需要生成自己的包装(或找到由Visual Studio生成的一个?),其产生称为TlbImp.exe
包装(见Type Library Importer on MSDN)的工具。
谢谢Tomas,我曾经怀疑过! – 2011-03-23 17:21:05
什么你不必自己做这个了? – akaphenom 2011-03-24 17:28:50