2016-02-22 90 views
0

我们刚刚升级到TFS2015,现在我们大部分的构建都无法正常工作。错误如下所示:TFS 2015升级:构建定义参数解析问题

异常消息:构建控制器无法反序列化构建的参数 参数。确保过程参数是 与生成机器上的组件兼容。详细信息:设置 属性'Microsoft.TeamFoundation.Build.Common.BuildParameter.Json' 引发异常。 (异常型)

[...]

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

我得到我必须改变MSBuild参数,以便它们可以被解析,但它不会让我更新构建定义的“进程”选项卡(提示错误并且所有字段都是空的),因此我无法编辑这些参数。

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

+0

你升级了什么版本的TFS?构建过程模板是用于构建的(它是否是自定义的)?你能提供你的构建定义的截图吗? – chief7

+0

如果您创建新的构建定义,是否会得到相同的错误? –

+0

感谢您的帮助,我找到并发布了答案。 - 我们从TFS2013升级,我升级了构建服务器到TFS2015。但是,在VS2013和TFS2013的另一个构建服务器中出现同样的错误。 - 我正在使用自定义构建过程模板。试图改变为默认模板,但没有解决问题。 – luisgj

回答

0

解决了这个问题。

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

错误我打开了构建定义进程选项卡清除构建定义的所有字段。所以我基本上将所有的旧值逐个插入,直到失败。

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

0

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

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

1

如果您安装“Microsoft Visual Studio团队基础服务器2015年电动工具”,然后使用命令“tfpt.exe builddefinition”,务必将出现以下错误信息:

1)以固定的方式上述错误信息是将缺少的DLL(“Newtonsoft.Json.dll”)复制到文件夹“C:\ Program Files(x86)\ Microsoft Team Foundation Server 2015 Power Tools”中。

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

二)文件复制 “%COMMONPROGRAMFILES%\ Microsoft共享\的Team Foundation Server \ 14.0 \ Newtonsoft.Json.dll” 文件夹“C:\ Program Files(x86)\ Microsoft Team Foundation Server 2015 Power Tools“

c)关闭”提升的命令提示符“并打开一个常规的e。g“MS VS 2015命令提示符”

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