TFS 2010中的“AnyCPU”与“任何CPU”

时间:2010-06-02 12:33:57

标签: tfs tfs2010

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

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

我删除了TFS配置中的空间,但它确实有效。

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

3 个答案:

答案 0 :(得分:20)

这似乎是VS2010中的一个已知错误 有关详细信息,请参阅http://connect.microsoft.com/VisualStudio/feedback/details/503935/msbuild-inconsistent-platform-for-any-cpu-between-solution-and-project

我发现了什么:

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

答案 1 :(得分:9)

(四年后......)

这个bug在Visual Studio 2012中似乎还活着并且还在踢。

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

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

但是,没有。它不会。

Ouch

我的配置实际上被称为“发布(PreProd)”(没有语音标记)但是当尝试将此名称放入路径时,VS似乎已经开始出现口吃。

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

荒谬的解决方案是在文本编辑器中打开我的解决方案文件(.sln),然后从“任何CPU”到“AnyCPU”进行搜索。

很明显,真的......!

2015年1月

只是补充一下,这个bug仍然活着并且还在踢。

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

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

答案 2 :(得分:4)

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