在 FSI 中是否有一种方法可以引用和使用已注册的 COM 组件?
在正常的 .fs 编译程序中,我可以简单地引用有问题的组件,然后打开相关的生成的命名空间。然而,在 .fsx 文件中,我似乎无法复制这种行为。我尝试使用 #r 直接引用 .dll,并且尝试使用 #I 指向 #r 后面的目录以及库的“友好”名称和文件名,但似乎没有任何效果。
您只能从 .fsx 引用 .NET 程序集吗?我真的不想编写/生成包装程序集。我希望有一种方法可以强制 FSI 采取正常可执行文件采取的任何步骤,以提供互操作层。
最佳答案
当您在 Visual Studio 中添加对 COM 组件的引用时,它会调用一个工具来生成包装器(标准 .NET 程序集),然后引用该包装器。
如果你想从fsx
引用COM,你需要自己生成包装器(或者找到由Visual Studio生成的包装器?)生成包装器的工具称为TlbImp.exe
(请参阅 Type Library Importer on MSDN)。
关于f# - 将 COM DLL 与 FSI 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5407669/