猿问

如何修复Visual Studio编译错误,“处理器架构之间不匹配”?

如何修复Visual Studio编译错误,“处理器架构之间不匹配”?

我是Visual Studio 2010中的项目配置的新手,但我做了一些研究,但仍然不能完全解决这个问题。我有一个Visual Studio解决方案,其中包含引用C#DLL的C ++ DLL。C#DLL引用了一些其他的DLL,一些在我的项目中,一些在外部。当我尝试编译C ++ DLL时,我收到此警告:

警告MSB3270:正在构建“MSIL”的项目的处理器体系结构与参考“[internal C#dll]”,“x86”的处理器体系结构之间存在不匹配。

它告诉我去配置管理器来调整我的架构。C#DLL使用平台目标x86进行设置。如果我尝试将其更改为其他内容,例如Any CPU,它会抱怨,因为它所依赖的外部DLL之一具有平台目标x86。

当我查看Configuration Manager时,它将我的C#DLL平台显示为x86,将我的C ++项目显示为Win32。这似乎是正确的设置; 当然我不希望我的C ++项目的项目将平台设置为x64,这是唯一提供的其他选项。

我在这做错了什么?


holdtom
浏览 1221回答 3
3回答

隔江千里

这个警告似乎是在新的Visual Studio 11 Beta和.NET 4.5中引入的,尽管我认为它可能以前可能已经存在。首先,它只是一个警告。如果您只是处理x86依赖项,它不应该伤害任何东西。当您声明您的项目与“任何CPU”兼容但您依赖于x86或x64的项目或.dll程序集时,Microsoft只是试图警告您。因为您具有x86依赖性,所以从技术上讲,您的项目不是“任何CPU”兼容的。要使警告消失,您实际上应该将项目从“任何CPU”更改为“x86”。这很容易做到,这里是步骤。转到“生成”|“配置管理器”菜单项。在列表中找到您的项目,在Platform下它会说“Any CPU”从下拉列表中选择“Any CPU”选项,然后选择&nbsp;<New..>从该对话框中,从“New Platform”下拉列表中选择x86,并确保在“Copy settings from”下拉列表中选择“Any CPU”。点击OK您需要为Debug和Release配置选择x86。这将使警告消失,并声明您的程序集或项目现在不再是“任何CPU”兼容,但现在特定于x86。如果要构建具有x64依赖性的64位项目,这也适用;&nbsp;你只需要选择x64。另外请注意,如果项目是纯.NET项目,项目通常可以兼容“任何CPU”。如果您引入针对特定处理器体系结构的依赖项(第三方DLL或您自己的C ++托管项目),则只会出现此问题。

开满天机

我得到了同样的警告:卸载项目编辑项目属性,即.csproj添加以下标记:<PropertyGroup> &nbsp;&nbsp;&nbsp;&nbsp;<ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;None&nbsp;&nbsp;&nbsp;&nbsp;</ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch></PropertyGroup>重新加载项目

噜噜哒

我在SQLite打开连接时遇到了同样的问题,并且使用Nuget并安装了项目中使用的组件(SQLite)修复了它!尝试以这种方式安装组件并检查结果
随时随地看视频慕课网APP
我要回答