【发布时间】:2012-04-24 04:57:01
【问题描述】:
我是 Visual Studio 2010 中项目配置的新手,但我已经完成了一些 research 并且仍然无法完全解决这个问题。我有一个带有引用 C# DLL 的 C++ DLL 的 Visual Studio 解决方案。 C# DLL 引用了一些其他 DLL,一些在我的项目中,一些在外部。当我尝试编译 C++ DLL 时,我收到以下警告:
警告 MSB3270:正在构建的项目的处理器架构“MSIL”与参考“[internal C# dll]”、“x86”的处理器架构不匹配。
它告诉我去配置管理器来调整我的架构。 C# DLL 设置为平台目标 x86。如果我尝试将其更改为其他东西,例如 Any CPU,它会抱怨,因为 it 依赖的外部 DLL 之一具有平台目标 x86。
当我查看配置管理器时,它将我的 C# DLL 的平台显示为 x86,将我的 C++ 项目的平台显示为 Win32。这似乎是正确的设置;当然,我不希望我的 C++ 项目的项目将平台设置为 x64,这是提供的唯一其他选项。
我在这里做错了什么?
【问题讨论】:
-
投诉是什么,具体来说,当您将其更改为 Any CPU 时?
-
我没有足够的信息来提出明智的建议,但请右键单击您的解决方案 -> 项目构建顺序,并确保您的 C# 项目在 C++ 项目之前构建。如果不是,请转到 Dependencies 选项卡,让 VS 知道 C++ 项目依赖于 C# 项目。
-
Visual Studio 在这方面又是一派胡言。我屏幕顶部的平台显示 x64,但警告显示正在构建的项目是“MSIL”。所以 Visual Studio 告诉我,当我不使用苹果时,苹果和橙子之间存在不匹配。我们可以将其重命名为 Visual Stupido 吗?
-
就我而言,这是 Visual Studio 中的一个错误。我选择 x64 作为平台目标,它告诉我正在为 MSIL 构建项目。
-
简短的回答是,如果您的项目依赖于 x86 或 x64,则不能使用任何 CPU(仅适用于纯 .NET 应用程序)。所以你必须为 x64 或 x32 构建,而不是任何 CPU。这源自戴夫的answer
标签: .net visual-studio