gpt4 book ai didi

c# - .NET 项目在将平台更改为 x64 并返回到任何 CPU 后未构建

转载 作者:太空狗 更新时间:2023-10-30 00:19:28 27 4
gpt4 key购买 nike

我的 .net C# 解决方案中有 5 个项目。我已将 Build 平台目标中的每个项目平台更改为 x64(这最初是“任何 CPU”)并且该项目运行良好。

然后我使用解决方案属性中的配置管理器更改了解决方案属性中的平台(右键单击解决方案 -> 属性)

然后我改回 Any CPU。但我无法构建解决方案。有很多错误说找不到各个项目的dll。

当我在解决方案属性中更改平台并构建时,我注意到一件事,构建已从 bin/debug 更改为 bin/x64/debug(我在 Debug模式下运行)

Ex 错误:

Metadata file '[project path]\bin\Debug\Thahavuru.DataAccessLayer.dll' could not be found   

我对必须再次成功构建项目感到困惑。非常感谢帮助。

最佳答案

修改解决方案的平台选择总是错误的。这是一个只对 C++ 项目重要的设置。托管项目被编译为包含 MSIL 的程序集,它们可以在任何 平台上运行。处理这个问题是抖动的工作,它发生在运行时而不是构建时。

确实对 C++ 项目很重要,因为它们在构建时被编译到目标架构。从 C++ 代码生成的 64 位 DLL 或 EXE 与 32 位的非常不同,它包含非常不同的机器代码。

因此,纯托管解决方案应该只有一个 平台选择。这是旧 VS 版本中的“AnyCPU”。并在新的 VS 版本中再次出现。当 Microsoft 开始创建将“x86”作为默认平台选择的项目时,他们在 VS2010 上大失所望。当从旧版本的 VS 升级时,使用具有多种平台的解决方案会造成各种痛苦。

听起来您给自己挖了一个更深的坑,程序集正在构建到 bin\x64\debug,但引用程序集仍指向 bin\debug。完全不知道您是如何做到这一点的,您必须始终在具有多个相互依赖的项目的解决方案中使用项目引用

我建议认真刀耕火种来解决这个问题:

  • 使用 Build + Configuration Manager 删除无关的平台选择,直到只剩下一个。
  • 删除项目引用节点中的引用程序集,然后使用“项目 + 添加引用”重新添加它们,现在使用“项目”选项卡。
  • 右键单击每个项目、“属性”、“构建”选项卡。每个类库项目都必须在 AnyCPU 上设置其平台目标。只有 EXE 项目的设置很重要,这是决定程序位数的设置。在 x86 和 AnyCPU 之间选择。永远不要使用 x64。
  • 切换到发布版本并重复上一步。

关于c# - .NET 项目在将平台更改为 x64 并返回到任何 CPU 后未构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20264513/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com