c# - AnyCpu 引用 x64 有效吗?

标签 c# 64-bit anycpu

当运行的系统肯定是 64 位系统时,从 AnyCpu dll 引用 x64-dll 是否有效?

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

"Could not load file or assembly 'XY' or one of its dependencies.An attempt was made to load a program with an incorrect format"

在过去的几年里,我曾多次遇到过这个问题,解决方案各不相同。有时它似乎有效,有时却无效。

最佳答案

AnyCPU 程序集以 x64 DLL 为目标是完全有效的。但是,您需要确保您的 AnyCPU 程序集实际上作为 x64 进程执行。

请注意,更高版本的 Visual Studio 已将“首选 32 位”选项添加到程序集。因此,您需要确保它已关闭,并且您没有在计算机上使用任何会覆盖该设置的设置。

另请注意,如果您的 AnyCPU 程序集引用了其他可能仅作为目标机器上的 x86 程序集可用的程序集,它将作为 x86 进程运行。

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

关于c# - AnyCpu 引用 x64 有效吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31289345/

相关文章:

c# - 单元测试在不应该做的时候失败了

c# - Xamarin-MediaPlugin保存到相册在iOS下不起作用

c - 如何将 64 位整数打印为十六进制?

visual-studio-2010 - 如何更改 Visual Studio 项目中的 Build.Platform 属性?

visual-studio - 在 Visual Studio 2010 Express 中更改 objective-c PU 设置

c# - GCE 允许特定端口上的传入流量

c# - 成员资格远程连接字符串在 SQL Server Management Studio 中有效但在 ASP.NET 中无效(错误 26)

c# - NUnit 项目引起的 System.BadImageFormatException

64-bit - x64 和 IA-64 有什么区别?

托管在 .Net4 应用程序中的 .Net2 程序集在 x86 中的性能比在 AnyCpu 模式下更好?