0

复制完 bin 目录后,我尝试使用 MSBuild 和 psexec 将来自 TeamCity 构建服务器的 Topshelf 服务安装到我们的开发服务器上:

<Exec Command="psexec \\$(ServerName) $(ServerBinDirLocal)\$(ProjectName).exe install -displayname $(ApplicationLongName) -description &quot;$(ServiceDescription)&quot; --networkservice --delayed" ContinueOnError="false" />

但是,无论我尝试使用哪种引号组合,我总是得到:

The command "psexec \\srv06541wn d:\Bin\Service.DEV\Service.exe install ..." exited with code 9009. 

显然,这是一个 DNS 错误,但我看不出这是怎么回事,因为我提供的是本地路径而不是 UNC 路径。构建服务器帐户是目标服务器上的管理员,所以这应该可以吗?

4

1 回答 1

2

因此,这里有几个可能的解决方案,但这并不是专门的 Topshelf 问题。我猜9009是谎言。

  1. 第一种可能是您需要 psexec 的完整路径。C:\...\psexec. 您可以通过将命令更改为非常简单并确保其正常工作来测试这一点。psexec可能不在 TeamCity 的道路上。
  2. 验证它是否适用于没有 FQDN 的主机名。TeamCity 的上下文可能与您不同。
于 2014-11-05T21:36:14.697 回答