当前上下文中不存在名称 'zipfile'
The name 'zipfile' does not exist in the current context
我有一个 SSIS 项目,我可以按原样 运行,但是当我尝试编辑它时,出现错误:
The name 'zipfile' does not exist in the current context
没有编辑,它工作正常。
产生错误的代码:
public void Main()
{
// TODO: Add your code here
string moduleName = Dts.Variables["User::ModuleName"].Value.ToString();
string s = Dts.Variables["User::ZipFileLocation"].Value.ToString().TrimEnd('\') + "\" + moduleName + "\" + moduleName + "_" + DateTime.Now.ToString("ddMMyyyy");
// TODO: Add your code here
string startPath = s;
string zipPath = s + ".zip";
try
{
File.Delete(zipPath);
ZipFile.CreateFromDirectory(startPath, zipPath);
}
catch (Exception e)
{
}
Dts.TaskResult = (int)ScriptResults.Success;
}
我该如何解决这个问题?
确保您使用的是 .NET 4.5 版。引用压缩 DLL - 这是路径:
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.IO.Compression.FileSystem.dll
通过添加 using System.IO.Compression.FileSystem
在 class 中引用它。如果 class 是从另一个 class 继承的,请确保也在父 class 中引用它。 (这是我必须做的才能编译)
要使用 ZipFile
class,您必须在项目中添加对 System.IO.Compression.FileSystem
程序集的引用;否则,您将在尝试编译时收到以下错误消息:
The name 'ZipFile' does not exist in the current context.
有关如何在 Visual Studio 中添加对项目的引用的详细信息,请参阅 How to: Add or remove references by using the Reference Manager。
仅供更新:-
使用 .Net 4.6.1 版本
添加对 System.IO.Compression.FileSystem
和 using System.IO.Compression
的引用就足够了。
using System.IO.Compression.FileSystem
给出以下错误。
我发现 ZipFile
class 不会只使用 System.IO.Compression
合作,它要求看 Reference to System.IO.Compression.FileSystem
.
如果您使用的是 Visual Basic,添加引用相当容易。在解决方案资源管理器中,项目下的选项卡之一称为 References。右键单击那里并 select 添加引用 。向下滚动一点并选中 System.IO.Compression.FileSystem
旁边的复选框。单击 确定 后,您甚至不需要在代码中显式引用 System.IO.Compression.FileSystem
!
祝你好运(:
我有一个 SSIS 项目,我可以按原样 运行,但是当我尝试编辑它时,出现错误:
The name 'zipfile' does not exist in the current context
没有编辑,它工作正常。
产生错误的代码:
public void Main()
{
// TODO: Add your code here
string moduleName = Dts.Variables["User::ModuleName"].Value.ToString();
string s = Dts.Variables["User::ZipFileLocation"].Value.ToString().TrimEnd('\') + "\" + moduleName + "\" + moduleName + "_" + DateTime.Now.ToString("ddMMyyyy");
// TODO: Add your code here
string startPath = s;
string zipPath = s + ".zip";
try
{
File.Delete(zipPath);
ZipFile.CreateFromDirectory(startPath, zipPath);
}
catch (Exception e)
{
}
Dts.TaskResult = (int)ScriptResults.Success;
}
我该如何解决这个问题?
确保您使用的是 .NET 4.5 版。引用压缩 DLL - 这是路径:
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.IO.Compression.FileSystem.dll
通过添加 using System.IO.Compression.FileSystem
在 class 中引用它。如果 class 是从另一个 class 继承的,请确保也在父 class 中引用它。 (这是我必须做的才能编译)
要使用 ZipFile
class,您必须在项目中添加对 System.IO.Compression.FileSystem
程序集的引用;否则,您将在尝试编译时收到以下错误消息:
The name 'ZipFile' does not exist in the current context.
有关如何在 Visual Studio 中添加对项目的引用的详细信息,请参阅 How to: Add or remove references by using the Reference Manager。
仅供更新:-
使用 .Net 4.6.1 版本
添加对 System.IO.Compression.FileSystem
和 using System.IO.Compression
的引用就足够了。
using System.IO.Compression.FileSystem
给出以下错误。
我发现 ZipFile
class 不会只使用 System.IO.Compression
合作,它要求看 Reference to System.IO.Compression.FileSystem
.
如果您使用的是 Visual Basic,添加引用相当容易。在解决方案资源管理器中,项目下的选项卡之一称为 References。右键单击那里并 select 添加引用 。向下滚动一点并选中 System.IO.Compression.FileSystem
旁边的复选框。单击 确定 后,您甚至不需要在代码中显式引用 System.IO.Compression.FileSystem
!
祝你好运(: