Powershell SnapIn在Visual Studio中运行时发布

时间:2018-04-06 23:44:20

标签: visual-studio powershell pssnapin

我在Visual Studio中为我的项目执行文件系统发布时尝试运行PowerShell脚本,但实际运行发布时,管理单元似乎不起作用。

如果我在visual studio之外手动运行powershell脚本,则管理单元可以正常工作,但是当它通过发布执行时,它无法正常工作。

以下是.pubxml个人资料中的目标。

<Target Name="Test" AfterTargets="GatherAllFilesToPublish">
    <Message Text="********************************** Test ***********************************" Importance="high" />
    <Exec Command="powershell.exe -file &quot;$(ProjectDir)\Properties\PublishProfiles\test.ps1&quot; $(ProjectDir)"/>
</Target>

这是powershell脚本

Add-PSSnapin Microsoft.TeamFoundation.PowerShell
$changeset = Get-TfsItemHistory $filePath -Recurse -StopAfter 1 | Select -ExpandProperty ChangesetId

结果是

Add-PSSnapin : The Windows PowerShell snap-in 'Microsoft.TeamFoundation.PowerShell' is not installed on this computer.

如果Get-TfsItemHistory命令存在替代方案,我也可以不使用管理单元。

1 个答案:

答案 0 :(得分:0)

我自己没有这个管理单元的亲身经历,但至少有一些想法:

  • 如果它来自单独的命令提示符而不是来自发布操作,则可能是32位与64位兼容性问题。原因可能是他们正在运行不同的版本?
  • 通过在发布中运行Get-PSSnapin来检查哪些管理单元可用。很可能它不存在,但您可以使用installutil.exe命令添加它。
    • 请参阅this页面
    • 中的示例3