【发布时间】:2014-01-10 12:25:13
【问题描述】:
我下面的类型提供程序使用了一些本机 x64 库。我用 anyCpu x64 标志编译了我的类型提供程序库。
现在,当我尝试从 Visual Studio 中的另一个项目中加载类型提供程序时,IntelliSense 出现以下错误:
类型提供者“...我的类型提供者...”报错:An 试图加载格式不正确的程序(异常 来自 HRESULT:0x8007000B
为了清楚起见,我在没有运行任何代码的情况下得到了这个错误,只需在 Visual Studio 中注册类型提供程序。
当我尝试从 32 位 fsi 加载它时,我得到了同样的错误。但是当我尝试使用 fsianycpu 或 64 位 fsi 时,它工作正常。我在fsi 中获得了我的类型和自动完成功能。
我猜这是因为 VS 它本身是 x86,IntelliSense/静态代码分析也是 x86,在某些时候他们尝试加载依赖于 x86 lib 的类型提供程序代码并弹出错误。
不幸的是,该库仅支持 x64。
有什么办法可以一起工作吗?
【问题讨论】:
-
如果您的提供程序使用本机 64 位库,则不应将其编译为 AnyCPU。它不是。绝对不能在 32 位机器上运行(或者像 Visual Studio 一样在 32 位进程中运行)。
-
你说得对,应该是64位的。
标签: .net visual-studio f# x86-64 type-providers