ローカルアカウントを使用してtfsビルドサーバーにログインし、次のPowerShellコマンドを実行する場合:
Add-PSSnapin Microsoft.TeamFoundation.PowerShell
tfsコマンドレットを正しくロードします。ただし、スクリプトを呼び出すtfsサーバーでビルドをトリガーすると、次のメッセージが表示されて失敗します。
「Microsoft.TeamFoundation.PowerShell」はこのコンピューターにインストールされていません。
ビルドエージェントはサービスアカウントで実行されます。私は何をすべきか?
[〜#〜] edit [〜#〜]:TFS PowerToolsのバージョン2015で機能させるには、@ AlexisColesの回答の最初のリンクからリクエストエントリを編集する必要がありました。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\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\1\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"
AssemblyName
、ApplicationBase
、ModuleName
およびVersion
エントリを再確認してください。上記のスクリプトはMicrosoft Team Foundation Server 2015 Power Toolsで動作します
ここで簡単に説明しますが、これはおそらく32ビットと64ビットのPowerShellに関係していると思います。通常の64ビットPowerShellからAdd-PSSnapinicrosoft.TeamFoundation.PowerShellを実行すると問題ありません。しかし、C:\ Windows\SysWOW64\WindowsPowerShell\v1.0\powershell_ise.exeから実行すると、上記の例外が発生します。先に進んで、ビルドサーバーは32ビットアプリケーションであり、32ビットランタイムを開始するためのものであると言います。
修正が正確に何であるかは本当にわかりませんが、おそらく次のことが正しい方向を示します。
私はこの問題を抱えていましたが、解決するために、PowerToolsのインストール中にデフォルトでコマンドレットが追加されないことに気付きました。それを機能させるには、フルインストールを実行する必要があります。
ここにいくつかの写真を投稿しました: https://fabiostawinski.wordpress.com/2016/07/11/the-windows-powershell-snap-in-Microsoft-teamfoundation-powershell-is-not-installed-on- this-computer /
Visual Studio 2017Proのみがインストールされた状態でPowerToolsを使用しようとしていたため、これは別の問題でした。
Visual Studio 2017の場合、彼らはMicrosoft Team Foundation Server 2017 Power Tools
をリリースしませんでした。彼らは、以前のバージョンは、TFSを備えたより高いバージョンのVisualStudioで動作するはずだと言っています。
問題は、Visual Studio 2017のみをインストールしている場合、たとえば、Visual Studio 2015(任意のバージョン)をインストールすることがMicrosoft Team Foundation Server 2015 Power Tools
をインストールするための要件であるため、Microsoft Team Foundation Server 2015 Power Tools
をインストールできないことです。
つまり、Visual Sudio 2015
をインストールしてから、Microsoft Team Foundation Server 2015 Power Tools
をインストールしてから、Add-PSSnapin Microsoft.TeamFoundation.PowerShell
が機能する必要がありました。
うまくいけば、これは誰かを助けるでしょう。