首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用System.IO.Compression.FileSystem.dll

无法使用System.IO.Compression.FileSystem.dll
EN

Stack Overflow用户
提问于 2015-03-12 10:50:41
回答 4查看 16.5K关注 0票数 4

我试图让这个Powershell代码正常工作:

代码语言:javascript
复制
     Add-Type -Path 'C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.IO.Compression.FileSystem.dll'
     $startPath = "D:\nade\CBA\Zip\StartPath"
     $zipPath = "D:\nade\CBA\Zip\result.zip"
     $extractPath = "D:\nade\CBA\Zip\Extract"
     [System.IO.Compression.FileSystem.ZipFile]::CreateFromDirectory($startPath, $zipPath)
     [System.IO.Compression.FileSystem.ZipFile]::ExtractToDirectory($zipPath, $extractPath)

但是,我得到了以下错误:

代码语言:javascript
复制
Unable to find type [System.IO.Compression.FileSystem.ZipFile]. Make sure that the assembly that contains this type is loaded.

我尝试使用位于这里的另一个DLL:

代码语言:javascript
复制
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.IO.Compression.FileSystem.dll

然而,我仍然得到同样的错误。

如何正确导入这个库?

编辑:我试过以下所有的方法,但都没有奏效:

代码语言:javascript
复制
[System.Reflection.Assembly]::LoadWithPartialName("System.IO.Compression.FileSystem")
Add-Type -Path 'C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.IO.Compression.FileSystem.dll'
Add-Type -Path 'C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.IO.Compression.FileSystem.dll'
Add-type -AssemblyName "System.IO.Compression.FileSystem"
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-03-12 23:13:37

结果我使用了一个不正确的命名空间。

ZipFile位于System.IO.Compression命名空间中,而程序集称为System.IO.Compression.FileSystem.dll

即。它与加载程序集无关,我只需要使用正确的命名空间:

代码语言:javascript
复制
     [System.IO.Compression.ZipFile]::CreateFromDirectory($startPath, $zipPath)
     [System.IO.Compression.ZipFile]::ExtractToDirectory($zipPath, $extractPath)
票数 8
EN

Stack Overflow用户

发布于 2016-03-10 03:17:12

我遇到了一个类似的错误,无法让它工作(WindowsServer2008R2)。在安装了.NET 4.5和Powershell 3.0之后(如在一些论坛中所发现的那样),它仍然无法工作。只有在我添加了这两行之后,它才起作用:

Add-Type -assembly "System.IO.Compression" Add-Type -assembly "System.IO.Compression.Filesystem"

票数 5
EN

Stack Overflow用户

发布于 2015-10-29 22:56:07

我在Win 2008 R2服务器上遇到了这个问题。结果,我需要更新到PowerShell版本3.0才能工作。当我尝试这个的时候,我终于想出了答案:

代码语言:javascript
复制
Add-Type -Path "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\System.IO.Compression.FileSystem.dll"

收到一条关于不兼容版本的消息。

现在,我的代码运行良好:

代码语言:javascript
复制
Add-Type -AssemblyName "System.IO.Compression.FileSystem"
[System.IO.Compression.ZipFile]::CreateFromDirectory("C:\Temp\lrressults", "C:\OutEmail\LoadRestReportzip") 
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29007742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档