【问题标题】:New projects not built when target platform is set explicitly明确设置目标平台时未构建新项目
【发布时间】:2011-02-16 18:52:00
【问题描述】:

我用一个项目创建了一个新的解决方案,然后将目标平台从“Any CPU”更改为“x86”。在此之后添加的新项目默认不会构建,并且它们的目标平台不遵循全局设置。为什么?!

查看配置管理器新添加的项目没有选中“构建”,它们获得目标平台“任何 CPU”而不是全局设置的 x86。为什么会这样?我希望新项目也能获得全局设置和定义的 x86 目标平台。我尝试过的一些事情:

  • 将全局平台切换回任何 CPU,然后再次切换到 x86。没有变化..
  • 为新项目明确选择平台。 x86 在列表中不可用,当我说<New..> 并尝试添加它时,我不允许“.. 已存在同名的解决方案平台。”。
  • 在新项目的构建属性中,我无法在“配置”部分更改平台,但可以在“常规”部分将“平台目标”设置为 x86。然而,尚不清楚这是否真的有影响,如果我稍后在全球范围内更改目标平台,它也不会响应。

最初我认为这是将我的解决方案从 VS2008 转换为 VS2010 的问题,但问题适用于两个地方。 IE。当我在 VS2008 中创建解决方案并留在 VS2008 中时,我仍然遇到问题。

【问题讨论】:

    标签: visual-studio visual-studio-2008 visual-studio-2010 target-platform


    【解决方案1】:

    步骤:

    • 关闭项目
    • 在记事本中打开 csproj 文件
    • 将所有 x86 替换为 x64,保存
    • 重新打开项目,它就可以工作了。

    【讨论】:

      【解决方案2】:

      是的,这在 VS2010 中几乎是一个突破性的变化,而且有点混乱。 2010 年创建的新解决方案将有两种配置,“Debug|x86”和“Release|x86”。与以前版本创建的解决方案不同,“Debug|Any CPU”和“Release|Any CPU”是默认设置。

      当您随后将在以前版本中创建的现有项目添加到此 VS2010 创建的解决方案中时,您会得到一个令人讨厌的混合包。平台组合现在显示三个选项,“x86”、“Any CPU”和“混合平台”。后者将构建所有项目。 非常令人困惑的是,配置名称实际上并不直接影响 Platform Target 设置。

      它是可修复的,您可以使用文本编辑器在 .sln 和 .vcproj 文件中搜索并将“任何 CPU”替换为“x86”。最好的方法也许是远离麻烦,让 VS2010 转换一个 VS2008 解决方案,而不是创建一个新的解决方案。讨厌的问题。

      【讨论】:

      • 谢谢!将在 .sln 中尝试 seach+replace,但听起来并不理想:-/ 请注意,我确实让 VS2010 转换了我的 VS2008 解决方案,当我添加新项目时遇到问题 - 不是现有的 VS2008 项目。还;我只在使用 VS2008 时得到了这个 - 没有升级,什么都没有 - 只是改变目标平台并添加新的干净项目。所以它(只是)似乎不是 VS2010 的事情。
      • 看来我可以通过修改解决方案和项目文件来修复它。不能用“x86”替换所有“Any CPU”,但很容易弄清楚应该做什么。这实际上使它能够响应稍后对全局设置所做的更改。伟大的! :-)
      • 我通过卸载项目并在 VS 中编辑 .csproj 文件来修复它。确保使用“AnyCPU”(Any 和 CPU 之间没有引号或空格)而不是 x86。在一种情况下,我注意到添加了一个空的 PropertyGroup - 我将其删除。
      • 注意,在 VS 2015 中仍然是这种情况。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-04
      • 1970-01-01
      • 1970-01-01
      • 2019-10-31
      • 1970-01-01
      • 2015-03-16
      相关资源
      最近更新 更多