单声道找不到ExcelProvider.dll

时间:2019-09-13 00:17:48

标签: f#

我在MacOS上安装了ExcelProvider(运行F#4.5和mono 6.0.0.327)

   indexTITLE  a  b  c
0           0  1  2  3

现在我创建了一个空目录,并创建了一个名为Foo.fs的文件,并编写了此代码

nuget install ExcelProvider

在同一目录中创建一个名为DataTypeTest.xlsx的Excel文件,创建2列Test1和Test2并在其下方添加一些数据

使用

编译
open FSharp.Interop.Excel
type DataTypeTest = ExcelFile<"DataTypeTest.xlsx">
let file = new DataTypeTest()
let row = file.Data |> Seq.head
printfn "This is column 1 %s" row.Test1
printfn "This is column 2 %s" row.Test2

这样编译正常,我得到了Foo.exe

现在,我要使Mono能够找到我的Excel Provider Dll。我创建了一个名为Foo.exe.config的配置文件,并复制了以下内容

fsharpc -r:/Users/foo/ExcelProvider.1.0.1/lib/netstandard2.0/ExcelProvider.Runtime.dll -o:Foo.exe Excel.fs

但是当我使用<configuration> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <providing privatePath="/Users/srabh/ExcelProvider.1.0.1/lib/netstandard2.0" /> </assemblyBinding> </runtime> </configuration> 运行代码时,仍然找不到

mono ./Foo.exe

1 个答案:

答案 0 :(得分:0)

您需要在配置文件中添加probing privatePath,并在应用程序的目录或子目录中包含dll。请参阅:Configure Apps

实际上最好不要直接使用编译器或msbuild,因为您会很快遇到问题(如您所注意到的)。而是请使用Rider / VS Code / VS(它们均在Mac上运行)。它将简化软件包管理以及构建和维护项目。如果选择将ionide扩展安装到VSCode中。