F# 无法识别 interop.office.Excel.dll

cas*_*bby 5 .net excel f# office-interop excel-interop

在VS2015中添加interop.office.Excel.dll的引用后,F#(4.0,.net 4.6.1)仍然无法识别Excel.dll下的类型。

在此处输入图片说明

对 Excel.dll 的引用看起来像

在此处输入图片说明

作为比较,我创建了一个具有相同参考的 C# 项目,找到参考没有问题。

奇怪的是,如果引用 excel dll 下的工作簿对象,F# 代码确实可以编译。(我只需要将它视为动态类型)只有智能感知不起作用。

有什么建议吗?谢谢

s95*_*163 3

最有可能(正如错误消息所述),您需要添加对office.dll的引用(在FSI或VS的引用中)。可能安装了不同版本的 Excel 和 Office,因此我假设您使用的是 Excel 2010(版本 14)。在这种情况下要明确:

#r @"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Visual Studio Tools for Office\PIA\Office14\Microsoft.Office.Interop.Excel.dll"
#r @"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Visual Studio Tools for Office\PIA\Office14\Office.dll"
open Microsoft.Office.Interop.Excel

let xlApp = new ApplicationClass(Visible = true) 
xlApp.
Run Code Online (Sandbox Code Playgroud)

xlApp现在将具有智能感知:

在此输入图像描述