TFS 2015升级:构建定义参数解析问题

时间:2016-02-22 10:54:51

标签: tfs msbuild tfs2015

我们刚刚升级到TFS2015,现在我们的大部分版本都无法运行。错误如下所示:

  

异常消息:构建控制器无法反序列化该进程   构建的参数。确保过程参数是   与构建机器上的程序集兼容。细节:设置   property'Microsoft.TeamFoundation.Build.Common.BuildParameter.Json'   抛出一个例外。 (输入Exception)

     

[...]

     

异常消息:TF401070:无法反序列化JSON字符串   提供。细节:       解析评论时出错。预期:*,得到了p。路径'MSBuildArguments',第1行,位置991.(类型   BuildParameterSerializationException)       异常堆栈跟踪:在Microsoft.TeamFoundation.Build.Common.BuildParameter.set_Json(String   值)

我得更改MSBuild参数,以便可以解析它们,但它不会让我更新构建定义的Process选项卡(提示错误,所有字段都是空的)所以我不能编辑参数。

这个问题有解决方案吗?我可以用其他方式编辑MSBuild参数吗?

4 个答案:

答案 0 :(得分:1)

如果您安装了" Microsoft Visual Studio Team Foundation Server 2015电动工具"并使用命令" tfpt.exe builddefinition",请确保修复以下错误消息:

1)修复上述错误消息的方法是将丢失的dll(" Newtonsoft.Json.dll")复制到文件夹" C:\ Program Files(x86)\ Microsoft Team Foundation Server 2015电动工具"。

a)确保打开提升的命令提示符

b)复制文件"%CommonProgramFiles%\ Microsoft Shared \ Team Foundation Server \ 14.0 \ Newtonsoft.Json.dll"到文件夹" C:\ Program Files(x86)\ Microsoft Team Foundation Server 2015电动工具"

c)关闭"提升的命令提示符"并打开常规的例如MS VS 2015命令提示符"

d)确认上述错误消息已消失。

答案 1 :(得分:0)

首先,确保您的构建计算机应与服务器版本匹配。

下一步是重新编译此构建计算机使用的任何自定义活动程序集(如果有)。

答案 2 :(得分:0)

解决了这个问题。

在另一台服务器上重新安装了TFS2013,将Visual Studio重新指向该TFS服务器,然后我可以获取构建参数。

我打开“构建定义”流程选项卡时出现错误,清除了构建定义的所有字段。所以我基本上一个接一个地插入所有旧值,直到它失败。

错误是我作为MSBuild参数传递的TFS路径,TFS2015不喜欢路径开头的'$'(我猜它自动认为它是TFS变量,2013年没有发生过)所以我改为ASCII代码'%24'。工作得很好。

答案 3 :(得分:0)

有类似问题 - 但只有当构建过程出现“MSBuild Arguments”(“/ maxcpucount”)时才会发生异常。进一步的调查使我发现创建的转储文件中缺少构建过程信息。 user7982840 指定的解决方案纠正了这两个问题:

  1. 转储文件中缺少流程详细信息
  2. “设置属性 'Microsoft.TeamFoundation.Build.Common.BuildParameter.Json' 抛出异常。“