0

在 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如果该命令存在替代方案,我也愿意不使用管理单元。

4

1 回答 1

1

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

  • 这可能是 32 位与 64 位的兼容性问题,如果它在单独的命令提示符下工作,而不是在发布操作内部。原因可能是他们运行不同的版本吗?
  • Get-PSSnapin通过在发布中运行来检查可用的管理单元。很可能它不存在,但您可以使用installutil.exe命令添加它。
于 2018-04-07T06:35:40.507 回答