0

我正在使用 TFS 部署任务“远程计算机上的 PowerShell”。它运行一个我之前复制到目标机器的 PowerShell 脚本。PowerShell 脚本调用依赖于 .exe 的 cmdlet。执行脚本时出现以下错误:

System.IO.FileNotFoundException: C:\Windows\DtlDownloads\VisualStudioRemoteDeployer3be2a227-e8d4-4e1f-b155-d1a53666793b\NeuronExplorer.exe

我无法弄清楚如何将 NeuronExplorer.exe 实际放入该临时目录以供执行。

我试过GACing它。它 GAC 成功,但我得到了同样的错误。

我尝试将路径添加到 PATH 环境变量,也导致相同的错误。

如果我将 NeuronExplorer.exe 复制到临时文件夹中,我就成功了,但我必须非常快才能真正让它工作。必须有办法让这个文件在远程上下文中可用。

4

2 回答 2

0

这里最简单的解决方法是通过完整的显式路径调用可执行文件。

此外,您没有指定是否在机器级别更改了 PATH 环境变量,但如果您这样做了,您很可能需要在该机器上重新启动代理,以使更改反映在代理进程中。

于 2017-09-22T05:37:27.630 回答
0

.exe我最终解决这个问题的方法是System.AppDomain.CurrentDomain.BaseDirectory在调用任何依赖于.exe.

let fileName = (FileInfo pathToExe).Name
let targetFile = sprintf "%s\\%s" System.AppDomain.CurrentDomain.BaseDirectory fileName
File.Copy(pathToExe, targetFile, true)

我可以通过使用来完成同样的事情System.AppDomain.CurrentDirectory.Load(assemblyBytes),但File.Copy对我有用。

希望这可以帮助其他人不必为这个特定问题而苦苦挣扎。

于 2017-09-25T14:11:09.803 回答