TFS 2015 升级:生成定义参数分析问题



我们刚刚升级到TFS2015,现在我们的大多数构建都无法正常工作。错误如下所示:

异常消息:生成控制器无法反序列化进程 构建的参数。确保工艺参数 与生成计算机上的程序集兼容。细节:设置 属性 'Microsoft.TeamFoundation.Build.Common.BuildParameter.json' 抛出了一个例外。(类型异常)

[...]

异常消息:TF401070:无法反序列化 JSON 字符串 提供。详: 解析注释时出错。预期:*,得到 p。路径"MSBuildArguments",第 1 行,位置 991。(类型 BuildParameterSerializationException) Exception Stack Trace: at Microsoft.TeamFoundation.Build.Common.BuildParameter.set_Json(String 值)

我知道我必须更改 MSBuild 参数才能解析它们,但它不允许我更新构建定义的"进程"选项卡(提示错误并且所有字段均为空),所以我无法编辑参数。

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

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

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

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

b) 将文件"%CommonProgramFiles%\Microsoft Shared\Team Foundation Server\

14.0\Newtonsoft.Json.dll"复制到文件夹"C:\Program Files (x86)\Microsoft Team Foundation Server 2015 Power Tools"

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

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

首先,确保生成计算机应与服务器版本匹配。

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

解决了这个问题。

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

错误 wen 我打开了"生成定义过程"选项卡,清除了生成定义的所有字段。所以我基本上一个接一个地插入所有旧值,直到失败。

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

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

  1. 转储文件中缺少进程详细信息
  2. "设置属性'Microsoft.TeamFoundation.Build.Common.BuildParameter.json'抛出了一个例外。

最新更新