AnyCpu引用x64有效



从AnyCpu dll中引用x64-dll当它运行的系统肯定是64位系统时,这是一个有效的场景吗?

我问,因为我在这里有问题,得到一个异常如下:

"无法加载文件或程序集'XY'或其依赖项之一。试图加载格式不正确的程序"

"

在过去的几年里,我用不同的解决方案遇到过这个问题好几次。有时似乎有效,有时则不然。

AnyCPU程序集针对x64 DLL是完全有效的。但是,这取决于您确保您的AnyCPU程序集实际上作为x64进程执行。

注意,Visual Studio的后续版本已经为程序集添加了"Prefer 32-bit"选项。因此,您需要确保此设置已关闭,并且您没有在机器上使用任何会覆盖该设置的设置。

还请注意,如果您的AnyCPU程序集引用了其他程序集,这些程序集可能在目标机器上只能作为x86程序集使用,那么它将作为x86进程运行。

坦率地说,如果您知道您只希望进程以x64方式运行,那么我认为将其编译为x64是最有意义的。至少这样,如果你在一个不兼容的环境中运行它,你会得到一个更好的错误消息(例如,事件日志将包含与你的进程不兼容的依赖关系的信息,而不是一些其他的依赖关系,实际上是预期的)。

最新更新