包含"任何CPU"和"x86"项目的Visual Studio 2010解决方案的建议

Rom*_*kov 17 c# visual-studio-2010 visual-studio

通常情况下,单个C#解决方案包含一些特定于x86的项目(通常具有本机依赖性),而其他项目则是"任何CPU".

直到最近,我总是进入配置管理器并确保解决方案平台是"任何CPU".这不是一个问题; 它需要像这里提到的那样偶尔进行调整,但总体来说还不错.

但是,我最近开始怀疑这些努力是否被误导了.我明显反对Visual Studio 2010(以及以前的Visual Studio 2008)设计来处理这个问题的方式."混合平台"实际上是一个准确的描述,虽然它最初感觉有什么不对劲,但进一步认为我必须得出结论,它不比"任何CPU"更错.

所以,最近我一直试图在这种情况下选择保持"混合平台"或更改为"x86"作为我的解决方案平台.后者反映了意图:最终的EXE文件是x86,并在64位操作系统上以32位模式运行.然而,前者是Visual Studio 真正想要的.

根据您的经验,在这种情况下,是否有一个特定的解决方案平台比其他平台更适合?

注1:在我遇到的每种情况下,'x86'都被本机依赖所证明,并且'任何CPU'都是合理的,因为它是一个真正独立于平台的外部库.

注2:如果我理解正确,解决方案平台没有太大的区别; 这只是一个名字.在添加新项目时,它似乎更改了默认的"to-build-or-to-to-build"复选框状态,但这是它唯一的影响.对?

Rom*_*kov 3

有了更多这方面的经验,我现在的想法如下:

  • 对于混合平台项目来说,解决方案平台的名称没有任何区别。VS 的行为完全相同,添加项目后需要完全相同的清理量。
  • “混合平台”稍微准确一些,所以我稍微偏向这个。

将所有内容更改为 x86 是不可取的,原因有两个:

  • 某些算法在 x64 模式下速度几乎是原来的两倍。
  • 任何 x86 共享库都不能在从 x64 模式受益匪浅的项目中使用。
  • 在 x86+x64 这两个平台中维护共享库比将它们保留在“任何 CPU”并在 Visual Studio 每次将不需要的解决方案配置撒入解决方案后进行清理要花费更多的精力。