我有一个包含WordPress插件代码的文件夹,以及以下脚本:
$folder = Join-Path $PSScriptRoot $pluginName
$destination = Join-Path $PSScriptRoot "bundles/$pluginName.zip"
Add-Type -AssemblyName "System.IO.Compression.FileSystem"
if (Test-Path $destination) {
Remove-Item $destination
}
[IO.Compression.ZipFile]::CreateFromDirectory(
$folder,
$destination,
[IO.Compression.CompressionLevel]::Optimal,
$true # include base directory
)
如果我尝试通过将生成的zip文件上传到本地WordPress实例来安装插件,则会出现以下错误:
警告:复制(/var/www/html/wp-content/plugins/jwt-authentication-for-wp-rest-api/jwt-authentication-for-wp-rest-api\jwt-auth.php) :无法打开流:第257行/var/www/html/wp-admin/includes/class-wp-filesystem-direct.php中的参数无效
警告:复制(/var/www/html/wp-content/plugins/jwt-authentication-for-wp-rest-api/jwt-authentication-for-wp-rest-api\jwt-auth.php) :无法打开流:第257行/var/www/html/wp-admin/includes/class-wp-filesystem-direct.php中的参数无效
无法复制文件。 /var/www/html/wp-content/plugins/jwt-authentication-for-wp-rest-api/jwt-authentication-for-wp-rest-api\jwt-auth.php
插件安装失败。
但是,如果我手动压缩插件,通过右键单击Windows资源管理器中的插件文件夹并选择“发送到...” - > “压缩文件夹”,生成的zip文件安装正常。
我无法弄清楚为什么会发生这种情况,因为如果我解压缩文件夹并diff
他们的内容,它们就是相同的。 (压缩文件不是,但我认为这是因为压缩级别等)。
在压缩时我是否必须设置任何特定的标志才能使其工作?如何编写生产完全的zip文件,例如“发送给...” - > “压缩文件夹”?