我们刚刚升级到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参数吗?
答案 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 指定的解决方案纠正了这两个问题: