为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

holdtom 2019-08-23 16:07:45
如何修复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,这是唯一提供的其他选项。我在这做错了什么?
查看完整描述

3 回答

?
隔江千里

TA贡献1906条经验 获得超10个赞

这个警告似乎是在新的Visual Studio 11 Beta和.NET 4.5中引入的,尽管我认为它可能以前可能已经存在。

首先,它只是一个警告。如果您只是处理x86依赖项,它不应该伤害任何东西。当您声明您的项目与“任何CPU”兼容但您依赖于x86或x64的项目或.dll程序集时,Microsoft只是试图警告您。因为您具有x86依赖性,所以从技术上讲,您的项目不是“任何CPU”兼容的。要使警告消失,您实际上应该将项目从“任何CPU”更改为“x86”。这很容易做到,这里是步骤。

  1. 转到“生成”|“配置管理器”菜单项。

  2. 在列表中找到您的项目,在Platform下它会说“Any CPU”

  3. 从下拉列表中选择“Any CPU”选项,然后选择 <New..>

  4. 从该对话框中,从“New Platform”下拉列表中选择x86,并确保在“Copy settings from”下拉列表中选择“Any CPU”。

  5. 点击OK

  6. 您需要为Debug和Release配置选择x86。

这将使警告消失,并声明您的程序集或项目现在不再是“任何CPU”兼容,但现在特定于x86。如果要构建具有x64依赖性的64位项目,这也适用; 你只需要选择x64。

另外请注意,如果项目是纯.NET项目,项目通常可以兼容“任何CPU”。如果您引入针对特定处理器体系结构的依赖项(第三方DLL或您自己的C ++托管项目),则只会出现此问题。


查看完整回答
反对 回复 2019-08-23
?
开满天机

TA贡献1786条经验 获得超13个赞

我得到了同样的警告:

  1. 卸载项目

  2. 编辑项目属性,即.csproj

  3. 添加以下标记:

    <PropertyGroup>
        <ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>
            None    </ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch></PropertyGroup>
  4. 重新加载项目


查看完整回答
反对 回复 2019-08-23
?
噜噜哒

TA贡献1784条经验 获得超7个赞

我在SQLite打开连接时遇到了同样的问题,并且使用Nuget并安装了项目中使用的组件(SQLite)修复了它!尝试以这种方式安装组件并检查结果


查看完整回答
反对 回复 2019-08-23
  • 3 回答
  • 0 关注
  • 1357 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信