尝试将SQLTypeProvider与postgres一起使用时,我收到以下错误
dotnet build
错误FS 3033:类型提供程序“FSharp.Data.Sql.SqlTypeProvider”报告了一个错误:未能加载文件或程序集“System.Runtime.CompilerServices.Unsafe,版本=4.0.4.0,区域性=neutral,PublicKeyToken= b 03 f5 f7 f11 d50 a3 a”。系统找不到指定的文件。[/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不应该在项目的某个子目录中,编译器可以找到它吗?
4条答案
按热度按时间5gfr0r5j1#
我有同样的问题与统一容器和更新后,这个dll从Nuget我的问题解决了
tzcvj98z2#
我修复了在web.config中注解包含System.Runtime. CompilerServices.Unsafe的条目的问题
ahy6op9u3#
在CMD中尝试
您可以在(C:\Program Files(x86)\Microsoft SDK\Windows\v10.0A\bin\NETFX 4.8 Tools〉)中找到gacutil,并在bin文件夹中找到其他已安装的框架,如果需要,请尝试为其他'..\bin\NETFX x.x Tools'框架运行相同的命令
C:\程序文件(x86)\Microsoft软件开发工具包\Windows\v10.0A\bin\NETFX 4.8工具〉
gacutil -i“C:\程序文件\dotnet\sdk\3.1.401\sdks\Microsoft.NET.sdk.Windows桌面\工具\net472\系统.运行时.编译器服务.不安全. dll”
hzbexzde4#
我不知道这个问题的确切原因(和其他问题一样,其中
Could not load file or assembly 'System.Runtime.CompilerServices.Unsafe'...
但在我的情况下,解决方案是:System.Runtime.CompilerServices.Unsafe
。请务必注意依赖关系树(NuGet包名称和版本),以后可能需要这些信息。