Использование шаблона обновления XAML с TFS 2015 \ 2017 - PullRequest
0 голосов
/ 17 мая 2018

Я столкнулся с этой проблемой при обновлении с TFS 2013 до 2017. Если вы по-прежнему используете UpgradeTemplate.xaml для запуска старых сборок MSBuild в стиле TFS 2005 \ 2008 (TFSBuild.proj), вы обнаружите, что они не работают сАгент сборки TFS 2015 или 2017 XAML.

Вы получите эту ошибку при запуске сборки из-за некоторых критических изменений, которые были внесены в основные сборки.Сборки XAML уже давно устарели ... а старые Team Build, основанные на MSBuild, больше не поддерживаются.Так что Microsoft (по праву) все равно.

Но есть ли способ заставить эти сборки работать в TFS 2015 \ 2017?Было бы большой тратой времени преобразовать их в сборки XAML, а затем преобразовать их в новый механизм сборки после обновления до TFS 2017.

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\TeamBuild\Microsoft.TeamFoundation.Build.targets (957): The following errors were encountered while processing the workflow tree:
'VisualBasicValue<LabelChildOption>': Compiler error(s) encountered processing expression "Microsoft.TeamFoundation.VersionControl.Client.LabelChildOption.Fail".
'LabelChildOption' is ambiguous in the namespace 'Microsoft.TeamFoundation.VersionControl.Client'.

'VisualBasicValue<RecursionType>': Compiler error(s) encountered processing expression "Microsoft.TeamFoundation.VersionControl.Client.RecursionType.Full".
'RecursionType' is ambiguous in the namespace 'Microsoft.TeamFoundation.VersionControl.Client'.

 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\TeamBuild\Microsoft.TeamFoundation.Build.targets (957): The "Label" task failed unexpectedly.
System.Activities.InvalidWorkflowException: The following errors were encountered while processing the workflow tree:
'VisualBasicValue<LabelChildOption>': Compiler error(s) encountered processing expression "Microsoft.TeamFoundation.VersionControl.Client.LabelChildOption.Fail".
'LabelChildOption' is ambiguous in the namespace 'Microsoft.TeamFoundation.VersionControl.Client'.

'VisualBasicValue<RecursionType>': Compiler error(s) encountered processing expression "Microsoft.TeamFoundation.VersionControl.Client.RecursionType.Full".
'RecursionType' is ambiguous in the namespace 'Microsoft.TeamFoundation.VersionControl.Client'.

   at System.Activities.Hosting.WorkflowInstance.ValidateWorkflow(WorkflowInstanceExtensionManager extensionManager)
   at System.Activities.Hosting.WorkflowInstance.RegisterExtensionManager(WorkflowInstanceExtensionManager extensionManager)
   at System.Activities.WorkflowApplication.EnsureInitialized()
   at System.Activities.WorkflowApplication.RunInstance(WorkflowApplication instance)
   at System.Activities.WorkflowApplication.Invoke(Activity activity, IDictionary`2 inputs, WorkflowInstanceExtensionManager extensions, TimeSpan timeout)
   at System.Activities.WorkflowInvoker.Invoke(Activity workflow, IDictionary`2 inputs, TimeSpan timeout, WorkflowInstanceExtensionManager extensions)
   at Microsoft.TeamFoundation.Build.Tasks.WorkflowTask.ExecuteInternal()
   at Microsoft.TeamFoundation.Build.Tasks.Task.Execute()
   at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
   at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()

1 Ответ

0 голосов
/ 17 мая 2018

Вы можете обойти эту ошибку, если вам не нужно помечать код как часть процесса сборки или обновлять связанные рабочие элементы.В моем случае я все еще использовал UpgradeTemplate в качестве удобного способа выполнения проверки на основе «Get-Latest» исходного кода в TFVC в папке builds на сборочном компьютере… на самом деле это не «сборка».Так что все в порядке.

Установите для этих двух свойств значение true в вашем TFSBuild.proj

Это приведет к тому, что MSBuild пропустит выполнение целей CoreLabel и CoreGetChangesetsAndUpdateWorkItems.CoreLabel - это та, которая загружает задачу, которая не в состоянии сборки ... и CoreGetChangesetsAndUpdateWorkItems нужна метка для существования, или она тоже не будет работать.

Я нашел эти свойства, просматривая старые файлы C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ TeamBuild \ Microsoft.TeamFoundation.Build.targets - это сценарий групповой сборки, поставляемый с TFS 2005 \ 2008.

<SkipLabel>true</SkipLabel>  

<SkipGetChangesetsAndUpdateWorkItems>true</SkipGetChangesetsAndUpdateWorkItems>
...