# Getting Started with DotNetZip

This page describes how to get started using DotNetZip.

## Which download to choose?

DotNetZip is free to use. You just need to download it and start using it. Different downloads of DotNetZip are available. Which one you choose depends on what you want to do.

If your goal is... | Download this... | which contains...
To read the documentation for the library and tools | DotNetZipLib-*.chm | a compiled helpfile containing all the documentation.
To build .NET, COM, or PowerShell apps that use the Zip library. | DotNetZipLib-DevKit-vx.x.zip | the signed DLLs for Zip and Zlib, for both the desktop and Compact Framework; the XML Documentation file for intellisense; the compiled help file (CHM); an MSI file that installs help into Visual Studio; and the License.
To modify or view the source code for the Zip & Zlib Libraries, the setup (msi) project, or the examples. | DotNetzip-src-vx.x.x.x.zip | the VS2008 solution, containing a number of VS projects and the source code for the library and various examples that use the library.
To distribute .NET applications that use the Zip library, or if you want to run a .NET application that depends on this library. | DotNetZipLib-Runtime-vx.x.zip | the signed DLLs for Zip and Zlib, for both the desktop and Compact Framework; and the License. This is a strict subset of the DevKit download.
To distribute .NET applications that use the Zip library, or if you want to run a .NET application that depends on this library. | DotNetZipLib-Runtime-vx.x.msi | an .MSI version of the Runtime release, containing signed DLLs for Zip and Zlib, for both the desktop and Compact Framework; and the License.
To create, read, or modify ZIP files from within a Windows GUI interface, or from the command line, or from within batch files. | DotNetZipUtils-v1.8.zip | a set of exe tools (command-line and GUI) that rely on the DotNetZip library, to create and manage zip files.
To create, read, or modify ZIP files from within a Windows GUI interface, or from the command line, or from within batch files. | DotNetZipUtils-v1.8.msi | an .MSI version of the Utils download. This installs a set of exe tools (command-line and GUI) that rely on the DotNetZip library, to create and manage zip files. There's also an uninstaller.

## Which DLL to use?

When you are building an application that manipulates ZIP files, you will want to use one of the binary releases of DotNetZip. These releases include multiple distinct DLLs or assemblies. Which one should you use?

The likely answer is: Ionic.Zip.dll

That's the mainstream library, the full library, and it includes all the capability of DotNetZip. The other DLLs are reduced in various ways, to suite particular requirements.

For example, you may want a smaller library, or you want to exclude the Self-Extracting capability, or you only want the ZLIB capability. In these cases, you may want to choose a different assembly.

Here's a summary of the options.

Usage scenario | DLL
Basic reading or writing of Zip files | Ionic.Zip.dll
raw block or stream compression using ZLIB, DEFLATE, or GZip | Ionic.Zlib.dll
compression using the BZip2 algorithm | Ionic.BZip2.dll
Some combination of ZLIB/DEFLATE/GZIP compression, BZip2 compression, and reading or writing Zip files | Ionic.Zip.dll
reading or writing Zip files on .NET Compact Framework | Ionic.Zip.CF.dll
ZLIB/DEFLATE/GZIP compression on .NET Compact Framework | Ionic.Zlib.CF.dll
compression using the BZip2 algorithm on .NET Compact Framework | Ionic.BZip2.CF.dll
Some combination of ZLIB/DEFLATE/GZIP compression, BZip2 compression, and reading or writing Zip files on .NET CF | Ionic.Zip.CF.dll
reading or writing Zip files, but never creating a self-extracting archive | Ionic.Zip.Reduced.dll

There are also Silverlight versions of the Zlib, BZip2, and Zip libraries.

Never reference both Ionic.Zlib.dll and Ionic.Zip.dll in the same application, or both Ionic.BZip2.dll and Ionic.Zip.dll. If your application does both Zlib and Zip things, or both BZip2 and Zip things, or all three, you need only add a reference to Ionic.Zip.dll. Ionic.Zip.dll includes all the capability in Ionic.Zlib.dll and Ionic.BZip2.dll. You always need to reference only a single Ionic DLL, regardless whether you use Zlib or BZip2 or Zip or some combination.

If you use COM, then you want to reference the main DLL, Ionic.Zip.dll. If you install the DotNetZip Runtime library via the .MSI installer, the correct DLL will automatically be installed and registered for use with COM. If you don't use the .MSI installer, you will have to perform these steps yourself. Consult the documentation on using DotNetZip with COM for more information.