21

使用:Visual Studio 2012 Professional 和 Ultimate 以及所有最新更新

如何正确指定配置和平台以正确构建 x86 和 x64。

Visual Studio,当您第一次创建 Winforms 应用程序时,会为您提供两种配置,Debug 和 Release,其中 AnyCPU 定义为平台。

如果您只针对一个平台,那么答案很简单,您可以转到 Build | 配置管理器并选择其中一个平台,然后转到项目属性的构建页面并选择相同的平台(x86 或 x64),瞧!你结束了(说你想要x86)

/bin/x86/Debug
/bin/x86/Release

我有一个包含一个应用程序和多个依赖项项目(DLL 程序集)的解决方案。

由于 VS 配置管理器在顶部有两个下拉列表,配置和平台,然后在项目级别有另一个配置和平台,我做了以下操作:

(在进一步打字之前,我认为整个设置很糟糕,但是......)

我使用最顶部的下拉菜单创建了两个新配置 Debug64 和 Release64,并为平台选择了混合平台。

我依次选择了四个主要的解决方案配置中的每一个,然后将项目级配置和项目级平台设置为匹配,所以:

Debug64 === Debug64, x64
Release64 === Release64, x64
Debug === Debug, x86
Release === Release, x86

然后我进入项目属性(Alt + Enter)构建页面,忽略平台并依次选择每个配置,然后将目标处理器设置为匹配。我将输出更改为以下内容:

Debug64: /bin/x64/Debug
Release64: /bin/x64/Release
Debug: /bin/x86/Debug
Release: /bin/x86/Release

默认情况下,Visual Studio 使用顶级平台来设置文件夹和配置名称来设置输出的最后部分。如果我保存并关闭项目属性,那么一切似乎都很好。我可以构建并使用正确的文件夹结束。

当我在 Visual Studio 工具栏上切换解决方案配置时,问题就来了。默认情况下,项目属性构建页面恢复为它想要的内容,例如,用于调试的 /bin/x64/Debug64 和用于发布的类似内容。

促使我写这个问题的原因是设计者很困惑,找不到合适的库。

我想从 Visual Studio 解决方案配置下拉列表中选择我想要的目标(Debug x64、Release x64、Debug x86、Release x86)并构建它。

我怎么做?我究竟做错了什么?

仅创建两个解决方案配置(调试和发布)不起作用,因为没有解决方案平台下拉列表,然后它针对所有子项目。在我看来,Visual Studio 有太多的配置部分和平台部分。也许我只是错过了一些东西。

4

1 回答 1

16

为了后代,这里是答案。这听起来很明显,但对我来说不是,所以...

注意:创建 Debug64 和 Release64 是让我付出代价的错误。我不仅必须删除解决方案中存在的 Debug64 和 Release64(在配置管理器中),而且我必须删除为每个项目自动生成的 Debug64 和 Release64(也在配置管理器中,只是在表格部分中)。那花了一段时间。

  1. 确保您拥有自动生成的调试和发布解决方案配置。

  2. 在解决方案平台中添加 x86 和 x64。默认值为任何 CPU。

  3. 从解决方案配置和平台下拉列表中选择(调试/发布和 x86/x64)的各种排列。确保项目匹配,它们应该匹配。

  4. 进入每个项目(选择项目名称,然后 Alt+Enter)。

  5. 在项目属性页面中,在解决方案下拉列表中选择 Debug/Release 和 x86/x64 的各种排列。确保目标处理器设置正确(应该是,但我发现了一些实例不是,可能是因为我之前的尝试)。另外,设置输出目录。这应该没问题并且是自动的(/bin/x86/Debug 等)。如果没有,请修复。

微软在工具栏中没有解决方案平台下拉菜单,所以如果你想改变解决方案平台,那么你必须去Build | 配置管理器并选择合适的解决方案平台。您可以从 Build | 中选择解决方案配置。配置管理器(Visual Studio 将自动更新工具栏下拉菜单中选定的解决方案配置)或只需在 Visual Studio 下拉菜单中选择新的解决方案配置。

构建项目将负责其余的工作。

构建说明 1. Visual Studio 设计器需要 x86 版本的用户控件才能正确显示。这在开始时并不明显,但现在是。Visual Studio 安装到“C:\Program Files (x86)”文件夹而不是“C:\Program Files”文件夹,使 Visual Studio 成为 32 位应用程序,而不是 64 位应用程序,因此它能够“使用" 设计器中只有 32 位版本。

  1. 可能有杂散的 /bin/Debug 和 /bin/release 文件夹,但它们不会被使用。

  2. 在通过不同的配置构建相同的代码时,我仍然试图让 BuildVersionInc 不增加,但这是一个不同的问题。

于 2013-07-31T15:28:45.040 回答