TFS 构建:此计算机上未安装“Microsoft.TeamFoundation.PowerShell”

TFS Build: `Microsoft.TeamFoundation.PowerShell' is not installed on this computer

当我使用本地帐户登录到 tfs 构建服务器并执行以下 powershell 命令时:

Add-PSSnapin Microsoft.TeamFoundation.PowerShell

它正确加载了 tfs cmdlet。但是,当我在调用脚本的 tfs 服务器上触发构建时,它失败并显示消息:

'Microsoft.TeamFoundation.PowerShell' is not installed on this computer.

生成代理在服务帐户下运行。我该怎么办?

编辑: 我必须编辑@Alexis Coles 的回答中第一个 link 的 reqistry 条目,以使其与 TFS PowerTools 2015 版一起使用:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\PowerShellSnapIns\Microsoft.TeamFoundation.PowerShell]
"PowerShellVersion"="4.0"
"Vendor"="Microsoft Corporation"
"Description"="This is a PowerShell snap-in that includes the Team Foundation Server cmdlets."
"VendorIndirect"="Microsoft.TeamFoundation.PowerShell,Microsoft"
"DescriptionIndirect"="Microsoft.TeamFoundation.PowerShell,This is a PowerShell snap-in that includes the Team Foundation Server cmdlets."
"Version"="14.0.0.0"
"ApplicationBase"="C:\Program Files (x86)\Microsoft Team Foundation Server 2015 Power Tools"
"AssemblyName"="Microsoft.TeamFoundation.PowerTools.PowerShell, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
"ModuleName"="C:\Program Files (x86)\Microsoft Team Foundation Server 2015 Power Tools\Microsoft.TeamFoundation.PowerTools.PowerShell.dll"
"CustomPSSnapInType"="Microsoft.TeamFoundation.PowerTools.PowerShell.TFPSSnapIn"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\PowerShell\PowerShellSnapIns\Microsoft.TeamFoundation.PowerShell]
"PowerShellVersion"="4.0"
"Vendor"="Microsoft Corporation"
"Description"="This is a PowerShell snap-in that includes the Team Foundation Server cmdlets."
"VendorIndirect"="Microsoft.TeamFoundation.PowerShell,Microsoft"
"DescriptionIndirect"="Microsoft.TeamFoundation.PowerShell,This is a PowerShell snap-in that includes the Team Foundation Server cmdlets."
"Version"="14.0.0.0"
"ApplicationBase"="C:\Program Files (x86)\Microsoft Team Foundation Server 2015 Power Tools"
"AssemblyName"="Microsoft.TeamFoundation.PowerTools.PowerShell, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
"ModuleName"="C:\Program Files (x86)\Microsoft Team Foundation Server 2015 Power Tools\Microsoft.TeamFoundation.PowerTools.PowerShell.dll"
"CustomPSSnapInType"="Microsoft.TeamFoundation.PowerTools.PowerShell.TFPSSnapIn"

仔细检查 AssemblyNameApplicationBaseModuleNameVersion 条目。上面的脚本适用于 Microsoft Team Foundation Server 2015 Power Tools

我将在这里进行快速讨论,并说这可能与 32 位和 64 位 powershell 有关。如果我从正常的 64 位 powershell 运行 添加-PSSnapinicrosoft.TeamFoundation.PowerShell 没问题。但是如果我从 C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell_ise.exe 运行 它得到上面的异常。我要继续说构建服务器是一个 32 位应用程序,并且用于启动 32 位 运行 时间。

不太确定修复的具体内容,但以下内容可能会为您指明正确的方向。

PowerShell (2.0, 32-bit) can't load TFS 2010 snap-in... except when it can

https://social.msdn.microsoft.com/Forums/en-US/a116799a-0476-4c42-aa3e-45d8ba23739e/tfs-power-tools-2008-powershell-snapin-wont-run-in-on-64bit-in-windows-2008-r2?forum=tfspowertools

我遇到了这个问题,为了解决这个问题,我注意到默认情况下,在 PowerTools 安装期间不会添加 cmdlet。您需要 运行 完整安装才能运行。

我在这里张贴了一些图片: https://fabiostawinski.wordpress.com/2016/07/11/the-windows-powershell-snap-in-microsoft-teamfoundation-powershell-is-not-installed-on-this-computer/

对我来说这是另一个问题,因为我试图在只安装 Visual Studio 2017 Pro 的情况下使用 Power Tools。

2017 年 Visual Studio 他们没有发布 Microsoft Team Foundation Server 2017 Power Tools。他们说以前的版本应该可以与具有 TFS 的 Visual Studio 的任何更高版本一起使用。

问题是,如果你只安装了 Visual Studio 2017,你将无法安装 Microsoft Team Foundation Server 2015 Power Tools,因为安装 Visual Studio 2015(任何版本)是一个安装 Microsoft Team Foundation Server 2015 Power Tools.

的要求

换句话说,我必须先安装 Visual Sudio 2015,然后安装 Microsoft Team Foundation Server 2015 Power Tools,然后 Add-PSSnapin Microsoft.TeamFoundation.PowerShell 才能正常工作。

另请参考: https://developercommunity.visualstudio.com/content/problem/103642/team-foundation-server-2015-power-tools-install-is.html

希望这对某人有所帮助。