TFS Power Tools 2008 Powershell Snapin не будет работать в 64-разрядной версии Windows 2008 R2
Я установил TFS Power Tools 2008 вместе с его функциями интеграции PowerShell на моем компьютере с ОС Windows 2008 R2.
Когда я пытаюсь запустить следующую команду, чтобы включить оснастку:
Add-PSSnapin Microsoft.TeamFoundation.PowerShell
в 32-разрядной версии PowerShell.exe в папке C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe он работает нормально. Но когда я пытаюсь сделать то же самое в 64-разрядной версии здесь: C: \ Windows \ system32 \ WindowsPowerShell \ v1.0 \ powershell.exe, я получаю следующую ошибку:
Add-PSSnapin : The Windows PowerShell snap-in 'Microsoft.TeamFoundation.PowerShell' is not installed on this machine.
At line:1 char:13
+ Add-PSSnapin <<<< Microsoft.TeamFoundation.PowerShell
+ CategoryInfo : InvalidArgument: (Microsoft.TeamFoundation.PowerShell:String) [Add-PSSnapin], PSArgument
Exception
+ FullyQualifiedErrorId : AddPSSnapInRead,Microsoft.PowerShell.Commands.AddPSSnapinCommand
Есть идеи, как заставить его работать в 64-битной версии? Заранее спасибо.
3 ответа
Кэти Конг из Microsoft любезно предоставила мне решение этой проблемы. Полную информацию можно найти здесь на форуме MSDN TFS PowerTools: http://social.msdn.microsoft.com/Forums/en-US/tfspowertools/thread/a116799a-0476-4c42-aa3e-45d8ba23739e/?prof=required
Исправление выглядит следующим образом и хорошо работает для меня:
Пожалуйста, сохраните следующее содержимое и сохраните его как *.reg файл и импортируйте в реестр (просто дважды щелкните файл *.reg, дважды нажмите OK)
Редактор реестра Windows, версия 5.00
[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ PowerShell \ 1 \ PowerShellSnapIns \ Microsoft.TeamFoundation.PowerShell] "PowerShellVersion" = "2.0" "Vendor" = "Microsoft Corporation" "Description" = "Это оснастка PowerShell, в состав которой входит команда Командлеты Foundation Server. " "VendorIndirect" = "Microsoft.TeamFoundation.PowerShell, Microsoft" "DescriptionIndirect" = "Microsoft.TeamFoundation.PowerShell. Это оснастка PowerShell, включающая командлеты Team Foundation Server." "Version"="10.0.0.0" "ApplicationBase"="C:\Program Files (x86)\ Электроинструменты Microsoft Team Foundation Server 2010" "AssemblyName"="Microsoft.TeamFoundation.PowerTools.PowerShell, Version=10.0.0.0, Культура = нейтральная, PublicKeyToken=b03f5f7f11d50a3a" "ModuleName"="C:\Program Files (x86)\ Электроинструменты Microsoft Team Foundation Server 2010 \ \ Microsoft.TeamFoundation.PowerTools.PowerShell.dll" "CustomPSSnapInType"="Microsoft.TeamFoundation.PoweroTToTT.PowerShell.TFPSSnapIn"
Вы получили это задом наперед. Оснастка - это 32-разрядная оснастка. Он отлично работает под PowerShell (x86), то есть 32-разрядный, но не работает под PowerShell (x64). Примечание: хотя папка называется SysWOW64, она не является 64-битной. Под 64-битной Windows родные 64-битные двоичные файлы находятся в $env:SystemRoot\System32. 32-разрядные двоичные файлы, которые выполняются на уровне Windows-on-Windows64 (т. Е. Они переносятся из 32-разрядного процесса и указателей на вызовы 64-разрядных ОС), помещаются в $env:SystemRoot\SysWOW64.
Файл реестра для TFS Power Tools 2012:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellSnapIns\Microsoft.TeamFoundation.PowerShell]
"PowerShellVersion"="2.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"="11.0.0.0"
"ApplicationBase"="C:\\Program Files (x86)\\Microsoft Team Foundation Server 2012 Power Tools"
"AssemblyName"="Microsoft.TeamFoundation.PowerTools.PowerShell, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
"ModuleName"="C:\\Program Files (x86)\\Microsoft Team Foundation Server 2012 Power Tools\\Microsoft.TeamFoundation.PowerTools.PowerShell.dll"
"CustomPSSnapInType"="Microsoft.TeamFoundation.PowerTools.PowerShell.TFPSSnapIn"