Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正在构建的项目的处理器体系结构不匹配”;MSIL“;以及参考文件中的处理器体系结构;AMD64_C#_C++_.net_Visual Studio 2012_Architecture - Fatal编程技术网

C# 正在构建的项目的处理器体系结构不匹配”;MSIL“;以及参考文件中的处理器体系结构;AMD64

C# 正在构建的项目的处理器体系结构不匹配”;MSIL“;以及参考文件中的处理器体系结构;AMD64,c#,c++,.net,visual-studio-2012,architecture,C#,C++,.net,Visual Studio 2012,Architecture,我有一个Visual Studio 2012.Net主项目,其构建属性中指定了平台目标x86。该项目由多个C++项目和C项目组成。在我的配置管理器中,C语言项目的平台是任何CPU,而C++项目是Win32。我想引用一个第三方dll,它是针对AMD64的。添加引用时,我得到以下警告: 警告:警告:处理器之间存在不匹配 正在构建的项目“MSIL”和处理器的体系结构 参考“DALSA,processorArchitecture=AMD64”的体系结构, “AMD64”。这种不匹配可能会导致运行时失败。

我有一个Visual Studio 2012.Net主项目,其构建属性中指定了平台目标x86。该项目由多个C++项目和C项目组成。在我的配置管理器中,C语言项目的平台是任何CPU,而C++项目是Win32。我想引用一个第三方dll,它是针对AMD64的。添加引用时,我得到以下警告:

警告:警告:处理器之间存在不匹配 正在构建的项目“MSIL”和处理器的体系结构 参考“DALSA,processorArchitecture=AMD64”的体系结构, “AMD64”。这种不匹配可能会导致运行时失败。请考虑 通过更改项目的目标处理器体系结构 配置管理器,以便调整处理器架构 在项目和引用之间,或者依赖于 使用与目标应用程序匹配的处理器体系结构进行引用 项目的处理器架构

如果我试图更改平台目标x64的主C#项目构建,它会抱怨,因为它所依赖的外部DLL具有平台目标x86


你知道我在干什么吗?

所以你有两只左脚鞋,没有一只右脚鞋。如果你想走路,你应该找一双合适的鞋。获取x86 DALSA或Win64外部DLL

单个进程不可能在不同的体系结构上运行


唯一的另一种选择是创建一个辅助进程,主进程将通过类似管道的方式连接到该辅助进程,该辅助进程将在互补的体系结构上运行。或者用COM对象包装DLL。

当然,这是一个适当的警告。创建该DLL的程序员明确表示,它只能在64位进程中工作。但您正在显式创建一个32位可执行文件。如果构建系统不向您发出警告,那将是一个错误。也许那个程序员错了,.NET相当宽容。证据在布丁里,它跑了吗?如果不是,那当然不是。