1

我在 Octopus deploy 中有一个 powershell 步骤,可以在部署网站之前从远程机器上的 zip 文件中复制一些必备文件。

$source='\\RemoteMachine\Artifacts\ZipFile.zip\ChildFolder\FolderToCopy'
$target='C:\inetpub\wwwroot\Web'; 

if (!(Test-Path $target -PathType Container))
{
  New-Item $target -Type Directory;
  Write-Output "Created folder $target";
}

$shellApplication = New-Object -com shell.application;
$zipPackage = $shellApplication.NameSpace($source);
$targetFolder = $shellApplication.NameSpace($target);

Write-Output "Copying files...";
$targetFolder.CopyHere($zipPackage.Items()) 
Write-Output "Copy done";

但是,这似乎不起作用,我收到一个错误

You cannot call a method on a null-valued expression.
At C:\Windows\system32\config\systemprofile\AppData\Local\Tentacle\Temp\c2f0444d-f099-49ce-ad17-a8aa47c4703b.ps1:15 char:1

+ $targetFolder.CopyHere($zipPackage.Items())

+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    + CategoryInfo          : InvalidOperation: (:) [], ParentContainsErrorRecordException

    + FullyQualifiedErrorId : InvokeMethodOnNull

CopyHere当我更改$zipPackage.Items()为仅$zipPackage运行 powershell 脚本但没有部署任何内容时,该错误似乎指向该行。

当我在机器上本地运行它时,它似乎工作正常,但是当我通过 octopus deploy 运行相同的东西时,它不起作用

4

0 回答 0