【问题标题】:"AnyCPU" vs "Any CPU" in TFS 2010TFS 2010 中的“AnyCPU”与“Any CPU”
【发布时间】:2010-06-02 12:33:57
【问题描述】:

我花了很多时间试图弄清楚为什么我的项目在 TFS2010 上使用默认(空白)配置构建,但告诉我如果我将其设置为任何内容都没有输出路径。

最后,我意识到在 .csproj 文件中配置写为 AnyCPU 而对于 TFS,建议的下拉值是 Any CPU(注意空格)。

我删除了 TFS 配置中的空间并且它起作用了。

该项目是从 VS2008 版本转换而来的。 MS改VS2010版本的配置名称了吗? 谁能告诉我发生了什么?

【问题讨论】:

  • 这个问题对 TFS Build 有很大影响。在此处阅读更多信息:stackoverflow.com/questions/3156278/…
  • 只是补充一下 - 现在是 2018 年 4 月,我正在使用 VS 2017,我进行了一段时间的故障排除,试图了解为什么输出路径出现问题只是为了实现 ANY CPU 与 ANYCPU 问题。现在在 VSTS 中,我使用 buildplatform 的两个变量来构建 sln 和 csproj。

标签: tfs


【解决方案1】:

这似乎是 VS2010 中的一个已知错误。
详情请见http://connect.microsoft.com/VisualStudio/feedback/details/503935/msbuild-inconsistent-platform-for-any-cpu-between-solution-and-project

我发现了什么:

解决方案中的所有项目文件都将平台设置为“AnyCPU”,即使您在配置窗口中选择了“Any CPU”。因此,如果您在 VS 中构建此解决方案,则一切正常。 当您尝试使用 TFS“Any CPU”平台进行构建时,解决方案工作正常,但必须(在 msbuild 任务上)设置项目以使用 /p:AnyCPU。

【讨论】:

【解决方案2】:

(四年后..)

这个 bug 似乎在 Visual Studio 2012 中仍然存在并且正在发生。

今天,我无法部署我的 Services 项目的新版本,因为 VS2012 一直告诉我我没有指定 OutputPath...但是我,并且可以看到它在我项目的“属性”窗口中。

我还尝试将我的服务部署到笔记本电脑上的本地驱动器上,看看 VS 是否会这样做。

但是,没有。不会的。

我的配置实际上被称为“Release (PreProd)”(没有语音标记),但 VS 在尝试将此名称放入路径时似乎出现了口吃。

重新启动 Visual Studio 2012 没有任何效果,并且(在谷歌搜索解决方案之后),我检查了我的机器上没有“平台”环境变量,这可能会给编译器造成混乱。

荒谬的解决方案是在文本编辑器中打开我的解决方案文件 (.sln),然后从“Any CPU”搜索“n”替换为“AnyCPU”。

很明显,真的……!

2015 年 1 月

补充一点,这个 bug 还活着。

最简单的解决方法实际上是重命名您的配置,使它们不包含空格或语音标记(即默认名称!!)

因此,通过将配置从 Release (Prod) 重命名为 ReleaseProd,错误就消失了。

【讨论】:

  • 在 Visual Studio 2013 中仍然存在 :(
  • 2016 年 7 月在 VS2015 中仍然存在:D
  • VS 2017 v15.9.4,我在构建输出中看到“未为项目设置 OutputPath 属性”,搜索结果将我带到了这里。这:<ProcessorArchitecture Condition=" '$(ProcessorArchitectureAsPlatform)' == 'AnyCpu' or '$(ProcessorArchitectureAsPlatform)' == 'Any Cpu'">msil</ProcessorArchitecture>(在 Microsoft.Common.CurrentVersion.targets 中)让我认为 MS 已尝试处理该问题(或至少部分处理)。注意:在诊断级别日志记录中,当 msbuild 为这个潜在错误做准备时,我看到了这条消息——但我实际上并没有收到这个错误,只是非常详细的输出)。
【解决方案3】:

我不确定它是否是每个“AnyCPU”(没有空格),但默认目标名称是带有空格的“Any CPU”。但是,我应该指出,这些名称是任意字符串,您可以将它们设置为您喜欢的任何值,只要它们保持一致即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-14
    相关资源
    最近更新 更多