代码之家  ›  专栏  ›  技术社区  ›  Roman Starkov

对同时包含“任意CPU”和“x86”项目的VisualStudio2010解决方案的建议

  •  17
  • Roman Starkov  · 技术社区  · 15 年前

    一个C#解决方案通常包含一些特定于x86的项目(通常通过具有本机依赖关系),而其他项目则是“任意CPU”。

    like the ones mentioned here ,但总体来说还不错。

    真正地 希望是这样。

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

    :在我遇到的每种情况下,'x86'都是由本机依赖性证明的,而'Any CPU'是由真正独立于平台的外部库证明的。

    附注2 :如果我理解正确 解决方案 平台没什么区别;只是个名字。在添加新项目时,似乎会更改默认的“tobuildornottobuild”复选框状态,但这是它唯一的效果。对吗?

    4 回复  |  直到 8 年前
        1
  •  4
  •   Marek    15 年前

    附注2 :是的。解决方案平台只是一组项目配置的名称,包括是否构建特定项目。

    x86 在所有桌面应用程序上(桌面应用程序,因为这些应用程序部署在终端用户计算机上,您通常无法控制这些计算机—如果您将服务器应用程序部署到已知的服务器上,这将非常容易)。

    原因:

    1. x86允许更简单的调试-在64位模式下运行时不支持编辑并继续。
        2
  •  4
  •   Jürgen Steinblock    15 年前

    我只将启动Windows窗体应用程序配置为“x86”,将项目中的所有类库配置为AnyCPU。如果我执行应用程序,所有非托管依赖项,即使是来自x86类库的依赖项仍然可以工作。

    现在,如果我将一个没有x86依赖项的类库从我的项目添加到另一个配置为AnyCPU的应用程序中,它就可以开箱即用了。

    在此之前,如果我想在64位项目中使用x86和x86,我的所有库都会遇到一个例外。

    依我看,那是最好的解决办法。

        3
  •  3
  •   Hans Passant    15 年前

    是的,当您让VS2010项目转换器从以前的版本导入项目时,您会遇到一些麻烦。谁不知道呢。旧的IDEs使用Debug | Any CPU和Release | Any CPU作为默认配置名称。VS2010确实更喜欢将平台目标设置为x86,因为这样做时IDE工作得更好。并使用Debug | x86和Release | x86作为默认配置名称。

    它在导入旧项目时生成混合。和一个

    顺便说一句,这些名称实际上并不代表平台目标设置。您可以更改设置,它不会神奇地更改配置名称。讨厌。

        4
  •  3
  •   Community CDub    8 年前

    在这方面有了更多的经验之后,我现在想:

    • “混合平台”稍微准确一点,所以我稍微偏爱这个。

    推荐文章