2017-08-29 163 views
1

所以我用.Net Core 2.0試過這個,現在用Mono瞄準.NET 4.5。在這兩種情況下,我都收到錯誤SqlDataProvider無法解析解析路徑

「類型提供程序'FSharp.Data.Sql.SqlTypeProvider'報告了一個錯誤:無法解析程序集Npgsql.dll中必須存在一個路徑: /Users/mgaff/crypt/test/packages/Npgsql /Users/mgaff/crypt/test/packages/SQLProvider/lib「。我將路徑複製到VS Code中的dll,並將其用作解析路徑,但數據提供者沒有看到它。下面的例子幾乎從https://fsprojects.github.io/SQLProvider/core/postgresql.html複製。任何幫助都將不勝感激。由於

let [<Literal>] dbVendor = Common.DatabaseProviderTypes.POSTGRESQL 

let [<Literal>] connString = "Host=localhost;Database=mydb;User Id=mgaff;" 
let [<Literal>] resPath = 
@"/Users/mgaff/crypt/test/packages/Npgsql/lib/net45/" 

let [<Literal>] indivAmount = 1000 
let [<Literal>] useOptTypes = true 

type sql = 
    SqlDataProvider< 
     dbVendor, 
     connString, 
     "",   //ConnectionNameString can be left empty 
     resPath, 
     indivAmount, 
     useOptTypes> 
+1

我的第一個猜測是,你需要一個比4.5更高的版本 - 當一個程序集,如果是以後的.NET版本,那麼這是一個典型的錯誤信息。我不認爲.NET Core會在任何情況下工作。 – weismat

+0

重點是您必須使用Mono進行編譯並使用.NET Core作爲執行時間庫。看到一個工作示例來自:https://github.com/fsprojects/SQLProvider/tree/master/tests/SqlProvider.Core.Tests/Postgres –

回答

0

在.NET 4.5檢查兩個版本Npgsql的(TL;博士,你應該使用3.1.10 - 見https://github.com/fsprojects/SQLProvider/issues/373)和動態鏈接庫架構(32位或64位)。

如上所述,某些類型提供程序在dotnet中不起作用。

+0

感謝您的幫助,但我仍然得到與版本3.1.10相同的錯誤。這是我第一次在F#和.Net中建立一個項目,所以它可能很容易成爲我做錯的其他事情。至於dotnet核心,我試圖實現這裏看到的解決方法https://github.com/Microsoft/visualfsharp/issues/3303,並能夠建立,但仍處理與包的錯誤。可能只是繼續前進,並試圖讓其他東西起來跑步。 –