Powershell:无法找到类型 [System.IO.Compression.ZipArchiveMode]:TypeNotFound 错误
Powershell: Unable to find type [System.IO.Compression.ZipArchiveMode]: TypeNotFound error
我看到 Windows Powershell 出现以下奇怪行为。
脚本 1:
Add-Type -AssemblyName System.IO.Compression.FileSystem
[System.IO.Compression.ZipArchiveMode]::Update
输出:
PS C:\Users\Administrator> C:\Users\Administrator\Documents\Untitled1.ps1
Unable to find type [System.IO.Compression.ZipArchiveMode].
At C:\Users\Administrator\Documents\Untitled1.ps1:3 char:1
+ [System.IO.Compression.ZipArchiveMode]::Update
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.IO.Compression.ZipArchiveMode:TypeName) [], RuntimeException
+ FullyQualifiedErrorId : TypeNotFound
脚本 2:
Add-Type -AssemblyName System.IO.Compression.FileSystem
[IO.Compression.ZipFile]::Open
[System.IO.Compression.ZipArchiveMode]::Update
输出:
PS C:\Users\Administrator> C:\Users\Administrator\Documents\Untitled1.ps1
OverloadDefinitions
-------------------
static System.IO.Compression.ZipArchive Open(string archiveFileName, System.IO.Compression.ZipArchiveMode mode)
static System.IO.Compression.ZipArchive Open(string archiveFileName, System.IO.Compression.ZipArchiveMode mode, System.Text.Encoding entryNameEncoding)
Update
为什么 Script1 无法加载 [System.IO.Compression.ZipArchiveMode]::Update
?如何修复 Script1 以确保 [System.IO.Compression.ZipArchiveMode]::Update
正确加载?
您还需要加载 System.IO.Compression
程序集,而不仅仅是 System.IO.Compression.FileSystem
:
# Note: Only necessary in *Windows PowerShell*.
# (These assemblies are automatically loaded on demand in PowerShell (Core) 7+.)
Add-Type -AssemblyName System.IO.Compression, System.IO.Compression.FileSystem
# Verify that types from both assemblies were loaded.
[System.IO.Compression.ZipArchiveMode]; [IO.Compression.ZipFile]
我看到 Windows Powershell 出现以下奇怪行为。
脚本 1:
Add-Type -AssemblyName System.IO.Compression.FileSystem
[System.IO.Compression.ZipArchiveMode]::Update
输出:
PS C:\Users\Administrator> C:\Users\Administrator\Documents\Untitled1.ps1
Unable to find type [System.IO.Compression.ZipArchiveMode].
At C:\Users\Administrator\Documents\Untitled1.ps1:3 char:1
+ [System.IO.Compression.ZipArchiveMode]::Update
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.IO.Compression.ZipArchiveMode:TypeName) [], RuntimeException
+ FullyQualifiedErrorId : TypeNotFound
脚本 2:
Add-Type -AssemblyName System.IO.Compression.FileSystem
[IO.Compression.ZipFile]::Open
[System.IO.Compression.ZipArchiveMode]::Update
输出:
PS C:\Users\Administrator> C:\Users\Administrator\Documents\Untitled1.ps1
OverloadDefinitions
-------------------
static System.IO.Compression.ZipArchive Open(string archiveFileName, System.IO.Compression.ZipArchiveMode mode)
static System.IO.Compression.ZipArchive Open(string archiveFileName, System.IO.Compression.ZipArchiveMode mode, System.Text.Encoding entryNameEncoding)
Update
为什么 Script1 无法加载 [System.IO.Compression.ZipArchiveMode]::Update
?如何修复 Script1 以确保 [System.IO.Compression.ZipArchiveMode]::Update
正确加载?
您还需要加载 System.IO.Compression
程序集,而不仅仅是 System.IO.Compression.FileSystem
:
# Note: Only necessary in *Windows PowerShell*.
# (These assemblies are automatically loaded on demand in PowerShell (Core) 7+.)
Add-Type -AssemblyName System.IO.Compression, System.IO.Compression.FileSystem
# Verify that types from both assemblies were loaded.
[System.IO.Compression.ZipArchiveMode]; [IO.Compression.ZipFile]