【问题标题】:Can't select Platform x64 in Visual Studio 2010无法在 Visual Studio 2010 中选择 Platform x64
【发布时间】:2016-02-05 17:03:31
【问题描述】:

在我的解决方案中,我正在导入用作参考的外部项目。在编码和设置 Release x64(在标准工具箱中)后,我遇到了构建问题。问题肯定与 x64/x86 配置有关。当我也转到解决方案和项目的属性时,除了我的项目之外,它们都设置为 x64。最后,问题是我不能选择x64。有没有人遇到过这种问题?错误信息是:

无法加载文件或程序集...试图加载一个 格式不正确的程序 (System.BadImageFormatException)

预览也在这里...

【问题讨论】:

  • 这个帖子中有不少答案似乎可以回答您的问题*.com/questions/11370344/…
  • 在发布问题之前我就在那里...我正在使用 c# 库项目在控制台应用程序中工作...(忘了提及)@Equalsk

标签: c# visual-studio build


【解决方案1】:

当微软开始修改 VS2010 中 C# 项目的默认选择时,解决方案平台选项变得一团糟。以前一直是 AnyCPU,准确反映了托管项目在任意处理器上运行的能力。在 VS2010 中,他们将默认设置更改为 x86。这造成了大量问题,他们在 VS2012 及更高版本中切换回 AnyCPU。

最好的办法是单击配置管理器按钮并删除所有无关的平台。你现在被困在 VS2010 上,所以只保留 x86,因为这是新项目的默认设置。在任何其他 VS 版本上保留 AnyCPU。请记住,名称无关紧要。

进程的实际位数由 EXE 项目确定,它是启动进程并可以强制 CLR 使用特定抖动的那个。右键单击项目 > 属性 > 构建选项卡 > 平台目标设置。如果您需要程序在 32 位模式下运行,请选择 x86。否则使用 AnyCPU。您的所有库项目都应该是 AnyCPU,以便它们可以简单地遵循 EXE 项目或单元测试选择。为 Debug 和 Release 配置执行此操作。

Fwiw,当您开始在 VS2015 中创建通用应用程序时,确实很重要。不再jit了,接下来你需要测试你的应用程序的.NET Native编译版本,它注意解决方案平台。因此,对于这类项目,再次重要的是,您需要保留 x86、x64 和 ARM 平台。与此 VS2010 问题无关。

【讨论】:

  • 非常具有描述性。 tnx @Hans