我正在尝试为我公司的一个产品设置每晚构建。当我执行构建时,它在45秒左右失败,给出错误“解析解决方案文件中的嵌套项目部分时出错。
这是来自构建的日志:
删除二进制目录
00:17删除工作区
00:00删除源目录
00:00创建工作区
00:18获取工作区
00:01创建标签标签[标签] (版本W60_2_VMCORPTFS01; CL \ me)是 成功创建。
00:04编译,测试和关联 变更集和工作项
00:04编译和测试
00:03运行MSBuild for Project C:\ WINDOWS \ Microsoft.NET \ Framework64 \ v4.0.30319 \ MSBuild.exe / nologo / noconsolelogger “E:\ localstore \ Productname_2.0 \产品\ Product.sln” / m:1 / fl /flp:"logfile=e:\localstore\ThisSpecificBuild\Product\Product.log;encoding=Unicode;verbosity=normal” / P:SkipInvalidConfigurations =真 / P:OUTDIR = “C:\构建\ 2 \产品\ ThisSpecificBuild \二进制\” / P:配置= “调试” / p:Platform =“任何CPU” /p:VCBuildOverride="e:\localstore\Productname_2.0\Product\Product.sln.Any CPU.Debug.vsprops” / DL:WorkflowCentralLogger,“C:\ PROGRAM Files \ Microsoft Team Foundation Server 2010 \工具\ Microsoft.TeamFoundation.Build.Server.Logger.dll “;” 冗长=正常; BuildUri = vstfs:///构建/生成/ 2934; InformationNodeId = 1175609; TargetsNotLogged = GetNativeManifest,GetCopyToOutputDirectoryItems,GetTargetPath; TFSUrl = HTTP ://本地主机:8080 / TFS / DefaultCollection; “* WorkflowForwardingLogger,” C:\程序 Files \ Microsoft Team Foundation Server 2010 \工具\ Microsoft.TeamFoundation.Build.Server.Logger.dll “;” 冗长=正常;“
<00> 00:00建成 $ / OMS /分行/ Product_2.0 /产品/ Product.sln 对于默认目标。 E:\ localstore \ ThisSpecificBuild \产品\ Product.sln (1586):解析嵌套时出错 解决方案文件中的项目部分。
这是来自MSBuild的日志:
Build build 7/6/2011 11:53:34 AM。 E:\ localstore \ ThisSpecificBuild \产品\ Product.sln(1586): 解决方案文件错误MSB5009:错误 解析嵌套项目部分 解决方案文件。
构建失败。
E:\ localstore \ ThisSpecificBuild \产品\ Product.sln(1586): 解决方案文件错误MSB5009:错误 解析嵌套项目部分 解决方案文件。
0 Warning(s) 1 Error(s)
时间流逝00:00:00.19
该解决方案可在Visual Studio中正确构建。
答案 0 :(得分:21)
尝试删除然后重新添加一些文件,以便重新生成sln文件。这样我的构建成功了。由于某种原因,我的sln文件格式不正确。
答案 1 :(得分:4)
我整个下午都在这上面,并找到了一个促成因素。我在.sln文件中找到了引用解决方案中不存在的项目的条目。也不是.sln文件中其他任何地方都引用了幻像项目的GUID。
搜索返回了一些技巧,例如http://social.msdn.microsoft.com/Forums/da-DK/msbuild/thread/55ab07ef-9179-4cc6-b2d0-63fcf088d8ba
那些“似乎”不起作用,因为本地构建仍然成功,Team Build仍然失败。然后我注意到我的解决方案中的第6199行总是出错,即使该行随着时间的推移而变化。事实证明,团队构建定义将清洁工作区设置为输出,而不是全部。将其更改为全部后,Team Build再次工作。
答案 2 :(得分:3)
如果您手动或通过合并工具修改了文件,则可能会留下一个空行,这对Visual Studio编译是可以的,但在自动化构建中失败。
答案 3 :(得分:0)
对我来说,重命名我的项目并缩短项目名称。看来,根据哪个目标目录tfs丢弃你的解决方案,最大值。可以超过文件名长度256。
答案 4 :(得分:0)
我遇到了同样的问题,并设法解决了这个问题:
干杯,希望这可以帮助任何人