x64 C++/CLI 程序集仍引用 x86 .NET 库



我的开发环境是Visual Studio 2010。我在C++项目中使用托管代码,使用 /CLI 标志进行编译并使用 .NET DLL 添加/FU

当我使用 32 位目标计算机进行编译时,一切正常,但是当编译为 64 位时,编译器似乎仍然使用 x86 .NET DLL。

此外,项目属性 -> 通用属性 ->框架和引用 ->(系统)程序集引用属性 ->相对路径(不可编辑)中的相对路径指向 x86 文件。

有解决办法吗?

这是完全正常的,不是问题。 引用程序集仅由编译器用于检索元数据,即程序集中类型的声明。 相当于本机C++中的 .h 文件。 这些声明依赖于目标体系结构。

体系结构依赖关系在运行时解析。 对于包含本机代码(mscorlib.dll、System.Data.dll、PresentationFramework.dll)的 .NET Framework 程序集,将从不同的 GAC 子目录中检索正确的程序集。 GAC_32 子目录包含具有 32 位本机代码的程序集(GAC_64 64 位),GAC_MSIL具有包含纯 IL 的程序集,因此没有体系结构依赖项。

最新更新