无法加载文件或程序集“System.Runtime.CompilerServices.Unsafe”

sas*_*ang 7 c# f# npgsql visual-studio f#-data

尝试将 SQLTypeProvider 与 postgres 一起使用时,运行时出现以下错误

dotnet build
Run Code Online (Sandbox Code Playgroud)

错误 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 >
Run Code Online (Sandbox Code Playgroud)

如果我将其更改为以下内容

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 >
Run Code Online (Sandbox Code Playgroud)

错误消失了,但我不明白为什么。修复看起来真的很奇怪。为什么我必须将它指向我的项目之外的文件?System.Runtime.CompilerServices.Unsafe.dll 不应该位于编译器可以找到它的项目子目录之一中的某个位置吗?

小智 7

我在使用统一容器时遇到了同样的问题,在从 Nuget 更新了这个 dll 后,我的问题解决了


小智 5

我修复了它在 web.config 中注释包含 System.Runtime.CompilerServices.Unsafe 的条目