我的 .net c# 解决方案中有 5 个项目。我已将构建平台目标中的每个项目平台更改为 x64(最初是“任何 CPU”),并且该项目运行良好。
然后我使用解决方案属性中的配置管理器更改了解决方案属性中的平台(右键单击解决方案 -> 属性)
然后我又改回任何CPU。但我无法构建解决方案。有很多错误说找不到各个项目的dll。
当我在解决方案属性中更改平台并构建时,我注意到一件事,构建已从 bin/debug 更改为 bin/x64/debug (我正在调试模式下运行)
Ex错误:
Metadata file '[project path]\bin\Debug\Thahavuru.DataAccessLayer.dll' could not be found
我对如何才能再次成功构建项目感到困惑。非常感谢您的帮助。
修改解决方案的平台选择总是错误的。这是一个仅对 C++ 项目重要的设置。托管项目被编译为包含 MSIL 的程序集,它们在any平台上运行。抖动的工作就是处理这个问题,它发生在运行时而不是构建时。
它确实对 C++ 项目很重要,因为它们在构建时被编译到目标架构。从 C++ 代码生成的 64 位 DLL 或 EXE 与 32 位的 DLL 或 EXE 非常不同,它包含非常不同的机器代码。
因此,纯托管解决方案应该只有一个平台选择。旧VS版本中是“AnyCPU”。在新的 VS 版本中也是如此。当微软开始创建将“x86”作为默认平台选择的项目时,微软在 VS2010 上表现得很糟糕。当从旧版本的 VS 升级时,具有大量平台组合的解决方案会造成各种痛苦。
听起来你已经给自己挖了一个更深的洞,其中程序集被构建到 bin\x64\debug,但引用程序集仍然指向 bin\debug。不知道你是如何做到这一点的,你必须始终在具有多个相互依赖的项目的解决方案中使用项目引用。
我建议认真地刀耕火种来解决这个问题:
希望有帮助