Team Foundation Server 2010 / MSBuild:解析解决方案文件中的嵌套项目部分时出错

时间:2011-07-06 16:37:58

标签: tfs msbuild tfsbuild

我正在尝试为我公司的一个产品设置每晚构建。当我执行构建时,它在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中正确构建。

5 个答案:

答案 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)

我遇到了同样的问题,并设法解决了这个问题:

  1. 在记事本中打开.sln并找到向导
  2. 我的一个项目没有关闭(错过了“ EndProject”)

干杯,希望这可以帮助任何人