我的类型提供程序使用一些本机x64库。我使用
anyCpu
x64标志编译了我的类型提供程序库。在Visual Studio中使用x64库的F#类型提供程序
现在,当我尝试从Visual Studio中的另一个项目的IntelliSense加载我喜欢的类型提供给了我以下错误:
The type provider '...my type provider...' reported an error: An attempt was made to load a program with an incorrect format (Exception from HRESULT: 0x8007000B
只是要清楚,我得到这个错误不运行任何代码,只需通过在Visual Studio中注册类型提供程序。
当我尝试从32位fsi
加载它时,我得到相同的错误。但是,当我尝试fsianycpu
或64位fsi
它工作正常。我在fsi
中获得我的类型和自动完成。
我猜这是因为VS自己是x86,IntelliSense /静态代码分析也是x86,在某些时候他们尝试加载依赖x86 lib和错误弹出的类型提供程序代码。
不幸的是,库只支持x64。
有没有什么办法让这项工作一起工作?
如果您的提供者使用本机64位库,那么它不应该被编译为AnyCPU。不是。当然,它不能在32位机器上运行(或者像Visual Studio一样在32位程序中运行)。 –
你是对的,它应该被认为是64位。 – Klark