使用F#脚本调用COM

3
我该如何在F#脚本中使用COM库?这是否可行?我该如何在.fsx文件中引用所需的COM库?
更具体地说,我想在构建脚本中使用InstallShield Automation。尽管我付出了所有的努力,但我只能让它在一个常规编译项目中运行。
编辑:我已经尝试了COM类型提供程序项目。然而,它似乎找不到我感兴趣的特定COM库中的任何类型。如果这是一个错误或有意行为,我不知道。

3
我不同意关闭投票。OP并不是在要求我们调试他的问题,而是在寻找如何解决它。这是一个有效的问题,据我所知,在F#标签下是一个新问题。如果我知道答案或有时间研究它,我会回答的。 - Guy Coder
1个回答

3

我认为COM类型提供程序可能会对你有所帮助:

这种方法的一个优点是,您可以在不预先生成交互操作程序集的情况下编写和部署F#脚本。另一个优点是,您可以通过智能感知轻松地探索安装在计算机上的所有COM组件。

是的,我刚刚谷歌搜索了一下,OP在提问之前也可能已经这样做了。


我应该在我的问题中补充说明,我已经尝试使用这个项目了。但是我没有成功,因为它没有在我依赖的程序集中找到任何类型。我不确定这是COM类型提供程序的错误还是预期行为。 - Sammy S.
@SammyS. 你能否提供你所尝试做的事情?一些代码?一些实际的COM/DLL/任何参考资料?有一些限制被提到,例如Office-COMs根本不受支持:https://github.com/fsprojects/FSharp.ComProvider#limitations-and-known-issues - Helge Rene Urholm
很遗憾,这是不可能的。我仍然接受了你的答案,因为我相信 PIA 的限制可能会阻止 COM 提供程序正常工作。最终我创建了一个单独的程序集,直接访问 COM 程序集。然后我可以从脚本中加载这个程序集。 - Sammy S.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接