构建配置:混合平台 VS 任意CPU

98

Visual Studio中不同的构建配置设置,例如Any CPU, Mixed Platform, WIN32等有何区别?

4个回答

52

由于其他平台已经解释过(即32位的X86,64位的x64,以及“Any CPU”可以在两者之间运行),因此我将专注于“Mixed Platform”以及它与“Any CPU”的区别。

“Any CPU”是项目级别的设置,而在实际解决方案中,我们有多个项目位于一个解决方案下,并且有可能我的一些项目使用“Any CPU”,但其他项目使用“x86”或“x64”构建平台。

因此,在解决方案级别上自动选择“Mixed Platform”。这表示在生成/重新生成解决方案期间,每个项目都会根据其所选的平台进行构建。


45

以下是有关Visual Studio及其构建文件中的构建配置设置的解释链接:

http://web.archive.org/web/20151215192101/http://visualstudiohacks.com/articles/visual-studio-net-platform-target-explained/

基本上,此设置确定了程序集可以在哪些平台上运行。选择AnyCPU时,生成的DLL被标记为可以在任何地方运行;选择x86时,生成的DLL仅被标记为只能在32位系统上运行,并且无法在64位应用程序或进程中运行(但可以在64位Windows上运行)等等。

这只是对编译后的DLL进行标志设置,不会改变编译过程中的其他方面。


1
另外,请查看此链接,了解解决方案文件的交互:http://social.msdn.microsoft.com/forums/vstudio/en-US/81c72e8b-6335-4bf4-b7c0-b5c322edcaee/mixed-platforms-vs-any-cpu - J. Polfer
55
这似乎没有解释“混合平台”。 - Menace
2
@Menace 我的理解(来自一份失落的参考资料)是,当您打开一个解决方案,其中所有项目的配置不相同时,Visual Studio 会显示/选择解决方案配置为混合平台。(如果我能找到原始参考资料,我会在此处附上引用。) - koan911
8
该链接已失效:http://visualstudiohacks.com/articles/visual-studio-net-platform-target-explained/。 - AH.

18

建造配置名称并不意味着太多 - 如果您在同一个解决方案中有C++和C#项目(如果还有移动项目,则更糟),因为各种类型的项目使用不同的配置名称,所以您最终会拥有许多这些配置。

我们尝试保持删除我们没有使用的所有配置,但有时这很困难,因为当您添加新项目时,不需要的配置将重新添加到解决方案中。

我的建议是根据其中的实际设置决定您需要哪些配置,然后删除其他所有内容。


11

来源:此帖子。 https://social.msdn.microsoft.com/forums/vstudio/en-US/81c72e8b-6335-4bf4-b7c0-b5c322edcaee/mixed-platforms-vs-any-cpu

当解决方案中的所有项目类型相同时(如C#/VB项目),解决方案配置将与项目配置完全匹配。一旦您的解决方案中有了具有不匹配配置/平台的项目,Visual Studio就会创建解决方案级别的“Mixed Platforms/Debug”和可能的“Mixed Platforms/Release”配置。这些配置只是映射到各个项目级别配置。

例如,如果您有一个C#项目和一个C++项目,则通常“Mixed Platforms/Debug”将映射到C#项目的“Any CPU/Debug”,而C++项目将映射为“Win32/Debug”。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接