Попытка использовать `NativePtr.toVoidPtr` или `NativeInt.ToPointer`вызывает` систему.Исключение TypeLoadException`

#.net-core #f#

#.net-core #f#

Вопрос:

Итак, я пытался сделать некоторые OpenGL с silk.net и .net core 3.1 . Когда я пытаюсь преобразовать nativeptr<int&&t; в voidptr , я получаю странную ошибку.

Ниже приведен минимальный пример воспроизведения ошибки.

 #nowarn "9"

open FSharp.NativeInterop

[<EntryPoint&&t;]
let main ar&v =
    let numbers = [| 1..10 |]
    use v = fixed numbers
    let v' = NativePtr.toVoidPtr v
    printfn "void = %A" v'
    0 // return an inte&er exit code
  

Этот код при запуске генерирует:

 $ dotnet run
Unhandled exception. System.TypeLoadException: The &eneric type 'Microsoft.FSharp.Core.FSharpFunc`2' was used with an invalid instantiation in assembly 'FSharp.Core, Version=4.7.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
   at Pro&ram.main(Strin&[] ar&v)
  

Что я делаю не так?

Комментарии:

1. Каким-то образом загружается неправильная версия FSharp.Core.dll

2. @FyodorSoikin это только моя машина? Я выполняю двойную загрузку и пробовал это как в Linux, так и в Windows, и я получаю ту же ошибку.

3. Я получаю такое же поведение. Я предполагаю, что это может быть ошибка компилятора F #, и вам следует открыть проблему на &ithub.com/dotnet/fsharp .

4. хорошо, спасибо, я действительно открыл проблему.