PowerShell复制项目在Octopus中出错

3

我尝试将一个DLL文件从我的电脑复制到另一台电脑,并进行注册:

net use \\RemoteIp\C$\Dev 'pass'/USER:'user'  

复制项目 "D:\test.dll" 到目的地 "\\RemoteIp\c$\Dev";

该命令用于将文件"D:\test.dll"复制到远程计算机的"C:\Dev"目录中。
regsvr32 "\\RemoteIp\C$\Dev\test.dll"

我遇到的问题是,当我尝试从Octopus运行此脚本时,会收到以下错误信息:

Copy-Item : 无法找到路径 'D:\test.dll',因为它不存在。 At C:\Octopus\Work\20160606100457-74\Script.ps1:3 char:10 + copy-item <<<< "D:\test.dll" -Destination "\RemoteIp\c$\Dev"; + CategoryInfo : ObjectNotFound: (D:\test.dll:String) [Copy-Item], ItemNotFoundException + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.CopyI temCommand 远程脚本以退出代码1失败

如果我在PowerShell中运行这些代码行,它们可以正常工作。你有什么建议吗?
谢谢

1
可能是因为脚本运行时DLL尚未创建,或者路径无法从脚本运行的位置访问。 - marsze
例如:D: 是一个映射驱动器,对于运行 Octopus 的用户不可访问吗? - Matt
您好,其实@marsze是正确的,我没有以正确的方式访问dll文件,所以章鱼不知道从哪里获取它。但这里我有另一个问题。看起来章鱼在regvsr32命令处卡住了。它成功地复制了我的dll文件,但似乎无法注册它。你有任何想法为什么吗? - Sebastian
我非常确定你需要管理员权限才能做那件事。 - marsze
1个回答

2

实际上这是我的错。当你在Octopus中运行一个脚本,该脚本是要在部署目标上运行的时候,你必须定义你的本地PC的IP地址。例如,在我的情况下,我必须像这样写地址“D:\test.dll”:“\192.168.00.00\D$\test.dll”。

对于regsvr32问题,我在服务器上添加了一个批处理文件来运行regsvr32指令,然后我只需调用那个文件,它就会完成其余工作。

希望这能帮助其他人 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接