尝试在使用postgres时使用SQLTypeProvider时,运行时会出现以下错误
dotnet build
错误 FS3033: 数据类型提供程序'FSharp.Data.Sql.SqlTypeProvider'报告了一个错误: 无法加载文件或程序集'System.Runtime.CompilerServices.Unsafe, Version=4.0.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'。系统找不到指定的文件。[/home/sashan/code/titan/src/Server/Server.fsproj]
我的数据提供者是这个:
type SQL = SqlDataProvider<
ConnectionString = pg_dev_conn_string,
DatabaseVendor = Common.DatabaseProviderTypes.POSTGRESQL,
UseOptionTypes = true >
如果我将它更改为以下内容type SQL = SqlDataProvider<
ConnectionString = pg_dev_conn_string,
DatabaseVendor = Common.DatabaseProviderTypes.POSTGRESQL,
ResolutionPath = "/home/sashan/code/dotnet/2.1.500/sdk/NuGetFallbackFolder/system.runtime.compilerservices.unsafe/4.5.1/lib/netcoreapp2.0",
UseOptionTypes = true >
错误已经消失,但我不知道为什么。修复方法似乎非常奇怪。为什么我必须将其指向项目外的文件?难道 System.Runtime.CompilerServices.Unsafe.dll 不应该在项目的子目录中的某个位置,以便编译器可以找到它吗?