Visual Studio 未能加载文件或程序集“System.Runtime.CompilerServices.Unsafe”

14ifxucb  于 2022-12-19  发布在  其他
关注(0)|答案(4)|浏览(479)

尝试将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不应该在项目的某个子目录中,编译器可以找到它吗?

5gfr0r5j

5gfr0r5j1#

我有同样的问题与统一容器和更新后,这个dll从Nuget我的问题解决了

tzcvj98z

tzcvj98z2#

我修复了在web.config中注解包含System.Runtime. CompilerServices.Unsafe的条目的问题

ahy6op9u

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”

hzbexzde

hzbexzde4#

我不知道这个问题的确切原因(和其他问题一样,其中Could not load file or assembly 'System.Runtime.CompilerServices.Unsafe'...但在我的情况下,解决方案是:

  • 从所有相关软件包开始重新安装System.Runtime.CompilerServices.Unsafe

请务必注意依赖关系树(NuGet包名称和版本),以后可能需要这些信息。

相关问题