2017-08-29 134 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,并能够建立,但仍处理与包的错误。可能只是继续前进,并试图让其他东西起来跑步。 –