web-dev-qa-db-ja.com

ファイルまたはアセンブリ 'System.Runtime.CompilerServices.Unsafe'を読み込めませんでした

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は、コンパイラーがそれを見つけられるプロジェクトのサブディレクトリーのどこかにあるべきではありませんか?

4
sashang

system.Runtime.CompilerServices.Unsafeを含むエントリをweb.configで修正して修正します

0