2011-03-23 84 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