【发布时间】:2011-08-07 20:26:55
【问题描述】:
不同的Build Configuration settings 有什么区别? Visual Studio 中的任何 CPU、混合平台、WIN32 等。
【问题讨论】:
标签: visual-studio msbuild buildconfiguration
不同的Build Configuration settings 有什么区别? Visual Studio 中的任何 CPU、混合平台、WIN32 等。
【问题讨论】:
标签: visual-studio msbuild buildconfiguration
正如已经解释过的其他平台(即 X86 用于 32 位,x64 仅用于 64 位,并且“任何 CPU”都可以在两者中运行)我将专注于 Mixed Platform 以及它与 Any CPU 的不同之处。
Any CPU 处于项目级别设置,而在现实世界的解决方案中,我们在一个解决方案下有多个项目,并且我的一些项目可能使用 Any CPU,但其他项目使用 x86或x64构建平台。
因此在解决方案级别自动选择Mixed Platform。这表明在构建/重建解决方案期间,每个项目都基于其选定的平台进行构建。
【讨论】:
以下链接有助于解释 Visual Studio 及其构建文件中的构建配置设置:
基本上,该设置说明程序集能够在哪个平台上运行。选择AnyCPU时,将标记为Orform的DLL以便在任何地方运行;选择x86时,标记为能够在32位系统上运行的结果,并且不会在64位应用程序或进程中运行(但将在64位窗口中运行;)等等。
这只是在已编译的 DLL 上设置标志 - 它根本不会改变编译过程的其他方面。
【讨论】:
当解决方案中的所有项目都属于同一类型时(例如 C#/VB 项目)解决方案配置将完全匹配 项目配置。一旦您在解决方案中有项目, 有不匹配的配置/平台,Visual Studio 创建 解决方案级别配置“混合平台/调试”和可能 “混合平台/发布”。这些配置只是映射到 单独的项目级配置。
例如,如果您有一个 C# 项目和一个 C++ 项目,通常 “混合平台/调试”将映射到 C# 项目的“任何 CPU/调试” 和 C++ 项目的“Win32/Debug”。
【讨论】:
构建配置名称意义不大 - 如果您在同一个解决方案中有 C++ 和 C# 项目,它们会激增(如果您也有移动项目则更糟),因为各种类型的项目使用不同的配置名称,所以你最终会得到很多。
我们会尝试不断删除所有不使用的配置,但这有时是一项艰巨的工作,当您添加新项目时,不需要的配置会重新添加到解决方案中。
我的建议是确定您需要哪些配置(通过查看其中的实际设置),然后删除其他所有配置。
【讨论】: