我花了很多时间试图弄清楚为什么我的项目使用TFS2010上的默认(空白)配置进行构建,但是如果我将其设置为任何内容,则告诉我没有输出路径。
最后,我意识到在.csproj文件中配置写为AnyCPU
,而对于TFS,建议的下拉值为Any CPU
(注意空格)。
我删除了TFS配置中的空间,但它确实有效。
该项目是从VS2008版本转换而来的。 MS是否更改了VS2010版本的配置名称? 有人能告诉我发生了什么吗?
答案 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是否会这样做。
但是,没有。它不会。
我的配置实际上被称为“发布(PreProd)”(没有语音标记)但是当尝试将此名称放入路径时,VS似乎已经开始出现口吃。
重新启动Visual Studio 2012没有任何效果,并且(在谷歌搜索解决方案之后),我检查了我的机器上没有“平台”环境变量,这可能会让编译器搞砸了。 / p>
荒谬的解决方案是在文本编辑器中打开我的解决方案文件(.sln),然后从“任何CPU”到“AnyCPU”进行搜索。
很明显,真的......!
2015年1月
只是补充一下,这个bug仍然活着并且还在踢。
最简单的修复方法实际上是重命名配置,使它们不包含空格或语音标记(即默认名称!!)
因此,通过将配置从Release (Prod)
重命名为ReleaseProd
,错误就会消失。
答案 2 :(得分:4)
我不确定它是否是每个“AnyCPU”(没有空格),但默认目标名称是带有空格的“任何CPU”。但是,我应该指出,这些名称是任意字符串,只要它们一致,您就可以将它们设置为您喜欢的任何名称。