2016-10-29 5 views
2

Linux上でfsharpコードから外部アセンブリを使用しようとしていますが、他の人が見ている "-r:filename.dll"それはまだ私のために失敗している。Linux上でfsharpcを使用してNugetから.dllにアクセスする方法

まず、ソースコード:あなたが見ることができるように

[email protected]:~/dev/fsharp$ cat sqlp.fs 
open FSharp.Data.SqlProvider 

printfn "hw, sp" 

、私はそれで何もしていない、パッケージを開封しています。

第二には、のが私のnugetディレクトリを見てみましょう:

[email protected]:~/dev/fsharp$ find nuget/ 
nuget/ 
nuget/SQLProvider.1.0.36 
nuget/SQLProvider.1.0.36/SQLProvider.1.0.36.nupkg 
nuget/SQLProvider.1.0.36/lib 
nuget/SQLProvider.1.0.36/lib/FSharp.Data.SqlProvider.dll 

あなたが見ることができるように、私は一つのパッケージがインストールされています。

第三に、のは、私はfsharpcを呼び出しています方法を見てみましょう:私はやって他の人を見てきたよう

[email protected]:~/dev/fsharp$ fsharpc --warn:5 --nologo -g -r:/home/tlewis/dev/fsharp/nuget/SQLProvider.1.0.36/lib/FSharp.Data.SqlProvider.dll sqlp.fs --target:exe --fullpaths -o exe/sqlp.exe 

/home/tlewis/dev/fsharp/sqlp.fs(1,18): error FS0039: The namespace 'SqlProvider' is not defined 

私は、「--fullpaths」と一緒に、DLLファイルへの絶対パスを使用しています。それにもかかわらず、fsharpcはまだ名前空間を見つけることができません。

最後に、私のfsharpバージョンです。それはちょうど現代のubuntuの適切なから標準版です:

[email protected]:~/dev/fsharp$ dpkg -l fsharp 
Desired=Unknown/Install/Remove/Purge/Hold 
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend 
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) 
||/ Name     Version   Architecture  Description 
+++-======================-================-================-================================================== 
ii fsharp     4.0.0.4+dfsg2-2 all    functional-first programming language - compiler f 

私は簡単なプログラムをコンパイルすることができます。

何か助けていただければ幸いです。ありがとう!

open FSharp.Data.SqlなくFsharp.Data.Sqlprovider:に必要なSqlProviderを使用するには

+0

オープンする必要があるネームスペースは、Sqlproviderを使用するには 'FSharp.Data.Sql'だと思います。 VSCodeまたはVisual Studioでこれを編集していた場合は、すでにいくつかのエラーが表示されているはずです。 – s952163

+0

@ s952163、それは確かに私の問題でした!どうもありがとう。 –

答えて

1

SqlProvider docsを参照してください。

F#Interactiveで最初にトラブルシューティングを行うこともできます。

関連する問題