TFS - 使用从TFS 2017到TFS 2010的模板[迁移TFS 2017到2010]

问题描述:

我使用TFS2017模板中工作流中的代码活动实现来定制构建流程活动。不幸的是我必须要使用此代码的活动在2010年TFS 我有,当我“复制/粘贴”我从TFS2017到TFS2010模板保持代码活动的结构,这个错误:TFS - 使用从TFS 2017到TFS 2010的模板[迁移TFS 2017到2010]

TF215097: An error occurred while initializing a build for build definition \BCA3\BP8BA: The type ‘InArgument(mtbc:BuildParameter[])’ of property ‘AutomatedTests’ could not be resolved. 

我的结构TFS2017:

enter image description here

用于自定义活动TFS2017

enter image description here

将溶液

在TFS2017工作流(自定义活动被称为下面CopyActivity):

enter image description here

如何管理呢?

编辑:错误与模板TFS2010和VS2017:

构建过程验证失败。详细信息:验证错误:活动“1:DynamicActivity”的私有实现具有以下验证错误:编译器错误遇到处理表达式“BuildDetail.BuildNumber”。类型'IBuildDetail'未定义。验证错误:活动“1:DynamicActivity”的私有实现具有以下验证错误:编译器错误遇到处理表达式“DropBuild并且不是String.IsNullOrEmpty(BuildDetail.DropLocation)”。类型'IBuildDetail'未定义。验证错误:活动“1:DynamicActivity”的私有实现具有以下验证错误:编译器错误遇到处理表达式“BuildDetail.DropLocation”。类型'IBuildDetail'未定义。验证错误:活动“1:DynamicActivity”的私有实现具有以下验证错误:编译器错误遇到处理表达式“BuildDetail.BuildNumber”。类型'IBuildDetail'未定义。验证错误:活动“1:DynamicActivity”的私有实现具有以下验证错误:编译器错误遇到处理表达式“BuildDetail.BuildDefinition.Name”。类型'IBuildDetail'未定义。验证错误:活动“1:DynamicActivity”的私有实现具有以下验证错误:编译器错误遇到处理表达式“associatedChangesets”。类型'Changeset'未定义。验证错误:活动“1:DynamicActivity”的私有实现具有以下验证错误:编译器错误遇到处理表达式“associatedChangesets”。类型'Changeset'未定义。验证错误:活动“1:DynamicActivity”的私有实现具有以下验证错误:编译器错误遇到处理表达式“treatTestFailureAsBuildFailure和(BuildDetail.TestStatus = Microsoft.TeamFoundation.Build.Client.BuildPhaseStatus.Failed)”。类型'IBuildDetail'未定义。 '客户'不是'Build'的成员。验证错误:活动“1:DynamicActivity”的私有实现具有以下验证错误:编译器错误遇到处理表达式“BuildDetail.TestStatus = Microsoft.TeamFoundation.Build.Client.BuildPhaseStatus.Unknown”。类型'IBuildDetail'未定义。 '客户'不是'Build'的成员。验证错误:活动'1:DynamicActivity'的私有实现具有以下验证错误:编译器错误遇到处理表达式“BuildDetail.CompilationStatus = Microsoft.TeamFoundation.Build.Client.BuildPhaseStatus.Unknown”。类型'IBuildDetail'未定义。 '客户'不是'Build'的成员。验证错误:活动“1:DynamicActivity”的私有实现具有以下验证错误:编译器错误遇到处理表达式“testAssemblies.Count()> 0”。 “计数”不是“系统”的成员。Collections.Generic.IEnumerable(Of String)'。验证错误:活动“1:DynamicActivity”的私有实现具有以下验证错误:编译器错误遇到处理表达式“BuildDetail.RequestedFor”。类型'IBuildDetail'未定义。验证错误:活动“1:DynamicActivity”的私有实现具有以下验证错误:编译器错误遇到处理表达式“String.Format(”Build Build in Build:{0}“,BuildDetail.BuildNumber)”“。类型'IBuildDetail'未定义。验证错误:活动“1:DynamicActivity”的私有实现具有以下验证错误:编译器错误遇到处理表达式“Not String.IsNullOrEmpty(BuildDetail.DropLocation)”。类型'IBuildDetail'未定义。验证错误:活动“1:DynamicActivity”的私有实现具有以下验证错误:编译器错误遇到处理表达式“if(platformConfiguration.IsEmpty或BuildSettings.PlatformConfigurations.Count = 1,BuildDetail.DropLocation +”\ logs“ ,如果(platformConfiguration.IsPlatformEmptyOrAnyCpu,BuildDetail.DropLocation +“\ logs \”+ platformConfiguration.Configuration,BuildDetail.DropLocation +“\ logs \”+ platformConfiguration.Platform +“\”+ platformConfiguration.Configuration))“。类型'IBuildDetail'未定义。类型'IBuildDetail'未定义。类型'IBuildDetail'未定义。验证错误:活动“1:DynamicActivity”的私有实现具有以下验证错误:编译器错误遇到处理表达式“String.Format(”{0} @ $/{1}“,LabelName,BuildDetail.BuildDefinition。 TeamProject)”。类型'IBuildDetail'未定义。验证错误:活动“1:DynamicActivity”的私有实现具有以下验证错误:编译器错误遇到处理表达式“String.Format(”$/{0}“,BuildDetail.BuildDefinition.TeamProject)”“。类型'IBuildDetail'未定义。验证错误:活动“1:DynamicActivity”的私有实现具有以下验证错误:编译器错误遇到处理表达式“WorkspaceName.Length> Microsoft.TeamFoundation.VersionControl.Common.RepositoryConstants.MaxWorkspaceNameSize”。 'VersionControl'不是'TeamFoundation'的成员。验证错误:活动'1:DynamicActivity'的私有实现具有以下验证错误:编译器错误遇到处理表达式“WorkspaceName.Substring(0,Microsoft.TeamFoundation.VersionControl.Common.RepositoryConstants.MaxWorkspaceNameSize).TrimEnd() ”。 'VersionControl'不是'TeamFoundation'的成员。验证错误:活动'1:DynamicActivity'的私有实现具有以下验证错误:编译器错误遇到处理表达式“String.Format(”工作空间名称{0}'超出了允许的最大限制'{1 }'字符。截断它以匹配最大限制。“,WorkspaceName,Microsoft.TeamFoundation.VersionControl.Common.RepositoryConstants.MaxWorkspaceNameSize)”。 'VersionControl'不是'TeamFoundation'的成员。验证错误:活动“1:DynamicActivity”的私有实现具有以下验证错误:编译器错误遇到处理表达式“String.Format(”{0} {1} {2}“,BuildDetail.BuildDefinition.Id, Microsoft.TeamFoundation.LinkingUtilities.DecodeUri(BuildAgent.Uri.AbsoluteUri).ToolSpecificId,BuildAgent.ServiceHost.Name)“。类型'IBuildDetail'未定义。 'LinkingUtilities'不是'TeamFoundation'的成员。类型'IBuildAgent'未定义。类型'IBuildAgent'未定义。

非常感谢!

+0

你是如何“复制\粘贴”?您是否直接将模板签入TFS 2010? –

+0

我的意思是我将自定义活动的解决方案添加到TFS2010中。我在TFS 2010中检入模板。 – FrankVDB

+0

您是否在此链接中执行了最后一步(启用您的自定义构建过程):https://msdn.microsoft.com/en-us/library/hh850441(v=vs.120 ).aspx#启用您的自定义构建过程 –

请确保您从TFS 2017年整体结构“复制”到2010年TFS 按照this document以确保定制的活动项目,并与您的自定义活动的.dll文件签入您的TFS 2010

不要忘记在该文档中的最后一步(启用您的自定义生成过程)。在构建控制器中,将版本控制路径设置为自定义程序集路径。

下面是有关这些错误的另一个博客会谈:https://nkdagility.com/tfs-2012-issue-tf215097-an-error-occurred-while-initializing-a-build-for-build-definition/

更新:

Becasue要使用模板2010 TFS你最好从TFS下载默认模板2010和定制。要自定义TFS 2010的默认模板,请使用VS2010。关于那些参考,请使用10.0。

+0

继文档之后,我使用TFS2010中的模板重新启动。当我启动构建定义时,我得到这些错误:类型'IBuildAgent'未定义。类型'IBuildAgent'未定义。 – FrankVDB

+0

@FrankVDB您是否在项目中添加了2个引用。 'Microsoft.TeamFoundation.Build.Client .dll'和 'Microsoft.TeamFoundation.Build.Workflow .dll' –

+0

是的,我完全按照这些步骤3次 – FrankVDB