Инструмент Team Foundation Power Tool не распознается Jenkins, даже если он установлен на нем

Я установил Power Tool Team Foundation на сервер Jenkins. У меня TFS 2015 установлен с Full VS 2015. Я хочу запустить сценарий PowerShell, который извлекает проект из TFS. Я могу запустить его с сервера Jenkins. Когда я пытаюсь передать этот скрипт из определения сборки Jenkins, используя плагин powershell. Я получаю ошибки относительно электроинструмента Team Foundation. Дженкинс жалуется, что не установлен инструмент Team Foundation Power Tool. Я попытался удалить и переустановить инструмент. Моя служба Jenkins работает под тем же управлением, с помощью которого я установил этот инструмент. Кроме того, этот инструмент не зависит от пользователя. Он установлен для всех пользователей. может кто-нибудь помочь?

Add-PSSnapin: оснастка Windows PowerShell «Microsoft.TeamFoundation.PowerShell» не установлена ​​на этом компьютере. В C: \ Users \ AppData \ Local \ Temp \ jenkins4325377511943060199.ps1: 22 символа: 1 + Add-PSSnapin Microsoft.TeamFoundation.PowerShell + ~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: InvalidArgument: (Microsoft.TeamFoundation.PowerShell: String) [Add-PSSnapin], исключение PSArgument + FullyQualifiedErrorId: AddPSSnapInRead, Microsoft.PowerShell.Commands.AddPSSnapinCommand Get-TfsChildItem: термин Get-TfsChildItem не распознается как имя командлета, функции, файла сценария или работающей программы. Проверьте написание имени или, если был включен путь, убедитесь, что путь правильный, и повторите попытку. В C: \ Users \ AppData \ Local \ Temp \ jenkins4325377511943060199.ps1: 25 символов: 10 + $ items = Get-TfsChildItem $ AutoDeployDir -Recurse -Server $ tfsCollection + ~~~~~~~~~~~~~~ ~~ + CategoryInfo: ObjectNotFound: (Get-TfsChildItem: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException

введите здесь описание изображения, как видите, я могу запустить его вручную на сервере.


person Meet101    schedule 25.07.2017    source источник
comment
Сработало ли это, если вы вручную запустили сценарий PowerShell на сервере Jenkins?   -  person PatrickLu-MSFT    schedule 26.07.2017
comment
Да, отлично сработало. Итак, я запуталась, что это может быть? Я только что обновил ошибки в вопросах. В первой строке Add-PSSnapin говорится: оснастка Windows PowerShell «Microsoft.TeamFoundation.PowerShell» не установлена ​​на этом компьютере.   -  person Meet101    schedule 26.07.2017


Ответы (2)


По ошибке

Add-PSSnapin: оснастка Windows PowerShell «Microsoft.TeamFoundation.PowerShell» не установлена ​​на этом компьютере.

Возможно, TFS Powertools не установлен полностью. По умолчанию PS CmdLets не устанавливается.

введите здесь описание изображения

Итак, просто добавьте это во время переустановки, а затем снова попробуйте сборку с Jenkins.

введите здесь описание изображения

Другие способы, пожалуйста, обратитесь к этому аналогичному вопросу: TFS Build : `Microsoft.TeamFoundation.PowerShell 'не установлен на этом компьютере

person PatrickLu-MSFT    schedule 26.07.2017
comment
Я знаю это и сделал это при установке. Как я уже упоминал, он работает вручную на сервере Jenkins, но не работает с определением сборки Jenkins / плагином PowerShell. - person Meet101; 26.07.2017
comment
@ Meet101 Рад, что проблема исправлена. Ваше решение и ссылка такие же, как и приведенные выше. Извините за неясность, я заметил, что это также может быть проблемой с 32-битной и 64-битной оболочкой PowerShell. Не выразил четко, просто сказал несколько способов в кратком обзоре. - person PatrickLu-MSFT; 27.07.2017

Я понял. Это проблема с инструментом между x32 и x64. Вам нужно будет добавить реестр, чтобы решить эту проблему. скопируйте приведенное ниже содержимое в файл * .reg и дважды щелкните файл, чтобы установить его в реестр.

Редактор реестра Windows версии 5.00 [HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ PowerShell \ 1 \ PowerShellSnapIns \ Microsoft.TeamFoundation.PowerShell] "PowerShellVersion" = "4.0" "Vendor" = "Microsoft Corporation" "Description" = "Это оснастка PowerShell- в том числе командлеты Team Foundation Server ". "VendorIndirect" = "Microsoft.TeamFoundation.PowerShell, Microsoft" "DescriptionIndirect" = "Microsoft.TeamFoundation.PowerShell, это оснастка PowerShell, которая включает командлеты Team Foundation Server." "Version" = "14.0.0.0" "ApplicationBase" = "C: \ Program Files (x86) \ Microsoft Team Foundation Server 2010 Power Tools" "AssemblyName" = "Microsoft.TeamFoundation.PowerTools.PowerShell, Version = 14.0.0.0, Культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a "" ModuleName "=" C: \ Program Files (x86) \ Microsoft Team Foundation Server 2015 Power Tools \ Microsoft.TeamFoundation.PowerTools.PowerShell.dll "" CustomPSSnapInType "T = "Microsoft.TeamFoundation.Power .PowerShell.TFPSSnapIn "

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ PowerShell \ 1 \ PowerShellSnapIns \ Microsoft.TeamFoundation.PowerShell] "PowerShellVersion" = "4.0" "Vendor" = "Microsoft Corporation" "Description" = "Это оснастка PowerShell, которая включает командлеты Team Foundation Server ". "VendorIndirect" = "Microsoft.TeamFoundation.PowerShell, Microsoft" "DescriptionIndirect" = "Microsoft.TeamFoundation.PowerShell, это оснастка PowerShell, которая включает командлеты Team Foundation Server." "Version" = "14.0.0.0" "ApplicationBase" = "C: \ Program Files (x86) \ Microsoft Team Foundation Server 2010 Power Tools" "AssemblyName" = "Microsoft.TeamFoundation.PowerTools.PowerShell, Version = 14.0.0.0, Культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a "" ModuleName "=" C: \ Program Files (x86) \ Microsoft Team Foundation Server 2015 Power Tools \ Microsoft.TeamFoundation.PowerTools.PowerShell.dll "" CustomPSSnapInType "T = "Microsoft.TeamFoundation.Power .PowerShell.TFPSSnapIn "

Не забудьте изменить версию PowerShellVersion и TFS в зависимости от ваших настроек. Это не сработает, если есть несоответствие версии. Я нашел его в http://www.it1me.com/it-answers?id=35292971&ttl=TFS+Build%3A+%60Microsoft.TeamFoundation.PowerShell%26%2339%3B+is+not+installed.+на+этом+компьютере

person Meet101    schedule 26.07.2017