Index: stable/HeuristicLab.Clients.Hive.Slave.ConsoleClient/3.3/app.config
===================================================================
--- stable/HeuristicLab.Clients.Hive.Slave.ConsoleClient/3.3/app.config	(revision 11931)
+++ stable/HeuristicLab.Clients.Hive.Slave.ConsoleClient/3.3/app.config	(revision 11932)
@@ -80,10 +80,4 @@
       <setting name="PluginInfrastructureDll" serializeAs="String">
         <value>HeuristicLab.PluginInfrastructure-3.3.dll</value>
-      </setting>
-      <setting name="SharpZipLibDll" serializeAs="String">
-        <value>ICSharpCode.SharpZipLib.dll</value>
-      </setting>
-      <setting name="SharpZipLibLicense" serializeAs="String">
-        <value>ICSharpCode.SharpZipLib License.txt</value>
       </setting>
       <setting name="ClientsHiveSlaveCoreDll" serializeAs="String">
Index: stable/HeuristicLab.Clients.Hive.Slave.WindowsService/3.3/app.config
===================================================================
--- stable/HeuristicLab.Clients.Hive.Slave.WindowsService/3.3/app.config	(revision 11931)
+++ stable/HeuristicLab.Clients.Hive.Slave.WindowsService/3.3/app.config	(revision 11932)
@@ -80,10 +80,4 @@
       <setting name="PluginInfrastructureDll" serializeAs="String">
         <value>HeuristicLab.PluginInfrastructure-3.3.dll</value>
-      </setting>
-      <setting name="SharpZipLibDll" serializeAs="String">
-        <value>ICSharpCode.SharpZipLib.dll</value>
-      </setting>
-      <setting name="SharpZipLibLicense" serializeAs="String">
-        <value>ICSharpCode.SharpZipLib License.txt</value>
       </setting>
       <setting name="ClientsHiveSlaveCoreDll" serializeAs="String">
Index: stable/HeuristicLab.Clients.Hive.Slave/3.3/HeuristicLab.Clients.Hive.Slave-3.3.csproj
===================================================================
--- stable/HeuristicLab.Clients.Hive.Slave/3.3/HeuristicLab.Clients.Hive.Slave-3.3.csproj	(revision 11931)
+++ stable/HeuristicLab.Clients.Hive.Slave/3.3/HeuristicLab.Clients.Hive.Slave-3.3.csproj	(revision 11932)
@@ -183,9 +183,4 @@
     <None Include="HeuristicLab.snk" />
   </ItemGroup>
-  <ItemGroup>
-    <Content Include="ICSharpCode.SharpZipLib License.txt">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </Content>
-  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <PropertyGroup>
Index: stable/HeuristicLab.Clients.Hive.Slave/3.3/ICSharpCode.SharpZipLib License.txt
===================================================================
--- stable/HeuristicLab.Clients.Hive.Slave/3.3/ICSharpCode.SharpZipLib License.txt	(revision 11931)
+++ 	(revision )
@@ -1,13 +1,0 @@
-#ziplib (SharpZipLib, formerly NZipLib) is a Zip, GZip, Tar and BZip2 library written entirely in C# for the .NET platform. It is implemented as an assembly (installable in the GAC), and thus can easily be incorporated into other projects (in any .NET language). The creator of #ziplib put it this way: "I've ported the zip library over to C# because I needed gzip/zip compression and I didn't want to use libzip.dll or something like this. I want all in pure C#."
-
-License
-
-The library is released under the GPL with the following exception:
-
-Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination.
-
-As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.
-
-Note: The exception is changed to reflect the latest GNU Classpath exception. Older versions of #ziplib did have another exception, but the new one is clearer and it doesn't break compatibility with the old one.
-
-Bottom line: In plain English this means you can use this library in commercial closed-source applications.
Index: stable/HeuristicLab.Clients.Hive.Slave/3.3/Manager/PluginManager.cs
===================================================================
--- stable/HeuristicLab.Clients.Hive.Slave/3.3/Manager/PluginManager.cs	(revision 11931)
+++ stable/HeuristicLab.Clients.Hive.Slave/3.3/Manager/PluginManager.cs	(revision 11932)
@@ -113,6 +113,4 @@
       string baseDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
       CopyFile(baseDir, targetDir, CoreProperties.Settings.Default.PluginInfrastructureDll);
-      CopyFile(baseDir, targetDir, CoreProperties.Settings.Default.SharpZipLibDll);
-      CopyFile(baseDir, targetDir, CoreProperties.Settings.Default.SharpZipLibLicense);
 
       // copy slave plugins, otherwise its not possible to register the UnhandledException handler to the appdomain        
Index: stable/HeuristicLab.Clients.Hive.Slave/3.3/Properties/Settings.Designer.cs
===================================================================
--- stable/HeuristicLab.Clients.Hive.Slave/3.3/Properties/Settings.Designer.cs	(revision 11931)
+++ stable/HeuristicLab.Clients.Hive.Slave/3.3/Properties/Settings.Designer.cs	(revision 11932)
@@ -86,28 +86,4 @@
         [global::System.Configuration.UserScopedSettingAttribute()]
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
-        [global::System.Configuration.DefaultSettingValueAttribute("ICSharpCode.SharpZipLib.dll")]
-        public string SharpZipLibDll {
-            get {
-                return ((string)(this["SharpZipLibDll"]));
-            }
-            set {
-                this["SharpZipLibDll"] = value;
-            }
-        }
-        
-        [global::System.Configuration.UserScopedSettingAttribute()]
-        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
-        [global::System.Configuration.DefaultSettingValueAttribute("ICSharpCode.SharpZipLib License.txt")]
-        public string SharpZipLibLicense {
-            get {
-                return ((string)(this["SharpZipLibLicense"]));
-            }
-            set {
-                this["SharpZipLibLicense"] = value;
-            }
-        }
-        
-        [global::System.Configuration.UserScopedSettingAttribute()]
-        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Configuration.DefaultSettingValueAttribute("HeuristicLab.Clients.Hive.SlaveCore-3.3.dll")]
         public string ClientsHiveSlaveCoreDll {
Index: stable/HeuristicLab.Clients.Hive.Slave/3.3/Properties/Settings.settings
===================================================================
--- stable/HeuristicLab.Clients.Hive.Slave/3.3/Properties/Settings.settings	(revision 11931)
+++ stable/HeuristicLab.Clients.Hive.Slave/3.3/Properties/Settings.settings	(revision 11932)
@@ -17,10 +17,4 @@
     <Setting Name="PluginInfrastructureDll" Type="System.String" Scope="User">
       <Value Profile="(Default)">HeuristicLab.PluginInfrastructure-3.3.dll</Value>
-    </Setting>
-    <Setting Name="SharpZipLibDll" Type="System.String" Scope="User">
-      <Value Profile="(Default)">ICSharpCode.SharpZipLib.dll</Value>
-    </Setting>
-    <Setting Name="SharpZipLibLicense" Type="System.String" Scope="User">
-      <Value Profile="(Default)">ICSharpCode.SharpZipLib License.txt</Value>
     </Setting>
     <Setting Name="ClientsHiveSlaveCoreDll" Type="System.String" Scope="User">
Index: stable/HeuristicLab.Clients.Hive.Slave/3.3/app.config
===================================================================
--- stable/HeuristicLab.Clients.Hive.Slave/3.3/app.config	(revision 11931)
+++ stable/HeuristicLab.Clients.Hive.Slave/3.3/app.config	(revision 11932)
@@ -80,10 +80,4 @@
       <setting name="PluginInfrastructureDll" serializeAs="String">
         <value>HeuristicLab.PluginInfrastructure-3.3.dll</value>
-      </setting>
-      <setting name="SharpZipLibDll" serializeAs="String">
-        <value>ICSharpCode.SharpZipLib.dll</value>
-      </setting>
-      <setting name="SharpZipLibLicense" serializeAs="String">
-        <value>ICSharpCode.SharpZipLib License.txt</value>
       </setting>
       <setting name="ClientsHiveSlaveCoreDll" serializeAs="String">
Index: stable/HeuristicLab.Core.Views/3.3/Clipboard.cs
===================================================================
--- stable/HeuristicLab.Core.Views/3.3/Clipboard.cs	(revision 11931)
+++ stable/HeuristicLab.Core.Views/3.3/Clipboard.cs	(revision 11932)
@@ -24,4 +24,5 @@
 using System.Collections.Generic;
 using System.IO;
+using System.IO.Compression;
 using System.Linq;
 using System.Threading;
@@ -198,5 +199,5 @@
           i++;
           SetEnabledStateOfContentViews(item, false);
-          XmlGenerator.Serialize(item, ItemsPath + Path.DirectorySeparatorChar + i.ToString("00000000") + ".hl", 9);
+          XmlGenerator.Serialize(item, ItemsPath + Path.DirectorySeparatorChar + i.ToString("00000000") + ".hl", CompressionLevel.Optimal);
           OnItemSaved(item, progressBar.Maximum / listView.Items.Count);
         }
Index: stable/HeuristicLab.Core/3.3/PersistenceContentManager.cs
===================================================================
--- stable/HeuristicLab.Core/3.3/PersistenceContentManager.cs	(revision 11931)
+++ stable/HeuristicLab.Core/3.3/PersistenceContentManager.cs	(revision 11932)
@@ -20,4 +20,5 @@
 #endregion
 
+using System.IO.Compression;
 using HeuristicLab.Common;
 using HeuristicLab.Persistence.Default.Xml;
@@ -32,5 +33,5 @@
 
     protected override void SaveContent(IStorableContent content, string filename, bool compressed) {
-      XmlGenerator.Serialize(content, filename, compressed ? 9 : 0);
+      XmlGenerator.Serialize(content, filename, compressed ? CompressionLevel.Optimal : CompressionLevel.NoCompression);
     }
   }
Index: stable/HeuristicLab.ExtLibs/HeuristicLab.MathJax/1.1/HeuristicLab.MathJax-1.1/HeuristicLab.MathJax-1.1.csproj
===================================================================
--- stable/HeuristicLab.ExtLibs/HeuristicLab.MathJax/1.1/HeuristicLab.MathJax-1.1/HeuristicLab.MathJax-1.1.csproj	(revision 11931)
+++ stable/HeuristicLab.ExtLibs/HeuristicLab.MathJax/1.1/HeuristicLab.MathJax-1.1/HeuristicLab.MathJax-1.1.csproj	(revision 11932)
@@ -105,12 +105,10 @@
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="ICSharpCode.SharpZipLib, Version=0.85.4.369, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
-      <HintPath>..\..\..\..\HeuristicLab.PluginInfrastructure\3.3\ICSharpCode.SharpZipLib.dll</HintPath>
-      <Private>False</Private>
-    </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core">
       <RequiredTargetFramework>3.5</RequiredTargetFramework>
     </Reference>
+    <Reference Include="System.IO.Compression" />
+    <Reference Include="System.IO.Compression.FileSystem" />
     <Reference Include="System.Xml.Linq">
       <RequiredTargetFramework>3.5</RequiredTargetFramework>
Index: stable/HeuristicLab.ExtLibs/HeuristicLab.MathJax/1.1/HeuristicLab.MathJax-1.1/Plugin.cs.frame
===================================================================
--- stable/HeuristicLab.ExtLibs/HeuristicLab.MathJax/1.1/HeuristicLab.MathJax-1.1/Plugin.cs.frame	(revision 11931)
+++ stable/HeuristicLab.ExtLibs/HeuristicLab.MathJax/1.1/HeuristicLab.MathJax-1.1/Plugin.cs.frame	(revision 11932)
@@ -21,9 +21,7 @@
 
 using System;
-using System.Collections.Generic;
+using System.IO;
+using System.IO.Compression;
 using System.Linq;
-using System.Text;
-using System.IO;
-
 using HeuristicLab.PluginInfrastructure;
 
@@ -38,6 +36,5 @@
       base.OnLoad();
       if (!Directory.EnumerateFiles(AppDomain.CurrentDomain.BaseDirectory, "mathjax.js", SearchOption.TopDirectoryOnly).Any()) {
-        var zip = new ICSharpCode.SharpZipLib.Zip.FastZip();
-        zip.ExtractZip("mathjax.zip", AppDomain.CurrentDomain.BaseDirectory, "");
+        ZipFile.ExtractToDirectory("mathjax.zip", AppDomain.CurrentDomain.BaseDirectory);
       }
     }
Index: stable/HeuristicLab.Persistence/3.3/Default/Xml/XmlGenerator.cs
===================================================================
--- stable/HeuristicLab.Persistence/3.3/Default/Xml/XmlGenerator.cs	(revision 11931)
+++ stable/HeuristicLab.Persistence/3.3/Default/Xml/XmlGenerator.cs	(revision 11932)
@@ -30,5 +30,4 @@
 using HeuristicLab.Persistence.Interfaces;
 using HeuristicLab.Tracing;
-using ICSharpCode.SharpZipLib.Zip;
 
 namespace HeuristicLab.Persistence.Default.Xml {
@@ -286,5 +285,5 @@
     /// <param name="filename">The filename.</param>
     public static void Serialize(object o, string filename) {
-      Serialize(o, filename, ConfigurationService.Instance.GetConfiguration(new XmlFormat()), false, 5);
+      Serialize(o, filename, ConfigurationService.Instance.GetConfiguration(new XmlFormat()), false, CompressionLevel.Optimal);
     }
 
@@ -297,5 +296,5 @@
     /// <param name="filename">The filename.</param>
     /// <param name="compression">ZIP file compression level</param>
-    public static void Serialize(object o, string filename, int compression) {
+    public static void Serialize(object o, string filename, CompressionLevel compression) {
       Serialize(o, filename, ConfigurationService.Instance.GetConfiguration(new XmlFormat()), false, compression);
     }
@@ -309,5 +308,5 @@
     /// <param name="config">The configuration.</param>
     public static void Serialize(object obj, string filename, Configuration config) {
-      Serialize(obj, filename, config, false, 5);
+      Serialize(obj, filename, config, false, CompressionLevel.Optimal);
     }
 
@@ -320,5 +319,5 @@
     /// <param name="includeAssemblies">if set to <c>true</c> include needed assemblies.</param>
     /// <param name="compression">The ZIP compression level.</param>
-    public static void Serialize(object obj, string filename, Configuration config, bool includeAssemblies, int compression) {
+    public static void Serialize(object obj, string filename, Configuration config, bool includeAssemblies, CompressionLevel compression) {
       try {
         string tempfile = Path.GetTempFileName();
@@ -328,19 +327,18 @@
           serializer.InterleaveTypeInformation = false;
           XmlGenerator generator = new XmlGenerator();
-          using (ZipOutputStream zipStream = new ZipOutputStream(stream)) {
-            zipStream.IsStreamOwner = false;
-            zipStream.SetLevel(compression);
-            zipStream.PutNextEntry(new ZipEntry("data.xml") { DateTime = DateTime.MinValue });
-            StreamWriter writer = new StreamWriter(zipStream);
-            foreach (ISerializationToken token in serializer) {
-              string line = generator.Format(token);
-              writer.Write(line);
+          using (ZipArchive zipArchive = new ZipArchive(stream, ZipArchiveMode.Create)) {
+            ZipArchiveEntry entry = zipArchive.CreateEntry("data.xml", compression);
+            using (StreamWriter writer = new StreamWriter(entry.Open())) {
+              foreach (ISerializationToken token in serializer) {
+                string line = generator.Format(token);
+                writer.Write(line);
+              }
             }
-            writer.Flush();
-            zipStream.PutNextEntry(new ZipEntry("typecache.xml") { DateTime = DateTime.MinValue });
-            foreach (string line in generator.Format(serializer.TypeCache)) {
-              writer.Write(line);
+            entry = zipArchive.CreateEntry("typecache.xml", compression);
+            using (StreamWriter writer = new StreamWriter(entry.Open())) {
+              foreach (string line in generator.Format(serializer.TypeCache)) {
+                writer.Write(line);
+              }
             }
-            writer.Flush();
             if (includeAssemblies) {
               foreach (string name in serializer.RequiredFiles) {
@@ -350,14 +348,16 @@
                   continue;
                 }
-                zipStream.PutNextEntry(new ZipEntry(Path.GetFileName(uri.PathAndQuery)));
-                FileStream reader = File.OpenRead(uri.PathAndQuery);
-                byte[] buffer = new byte[1024 * 1024];
-                while (true) {
-                  int bytesRead = reader.Read(buffer, 0, 1024 * 1024);
-                  if (bytesRead == 0)
-                    break;
-                  zipStream.Write(buffer, 0, bytesRead);
+                entry = zipArchive.CreateEntry(Path.GetFileName(uri.PathAndQuery), compression);
+                using (BinaryWriter bw = new BinaryWriter(entry.Open())) {
+                  using (FileStream reader = File.OpenRead(uri.PathAndQuery)) {
+                    byte[] buffer = new byte[1024 * 1024];
+                    while (true) {
+                      int bytesRead = reader.Read(buffer, 0, 1024 * 1024);
+                      if (bytesRead == 0)
+                        break;
+                      bw.Write(buffer, 0, bytesRead);
+                    }
+                  }
                 }
-                writer.Flush();
               }
             }
@@ -407,7 +407,9 @@
         Serializer serializer = new Serializer(obj, config);
         Serialize(stream, serializer);
-      } catch (PersistenceException) {
+      }
+      catch (PersistenceException) {
         throw;
-      } catch (Exception e) {
+      }
+      catch (Exception e) {
         throw new PersistenceException("Unexpected exception during Serialization.", e);
       }
@@ -427,7 +429,9 @@
         Serialize(stream, serializer);
         types = serializer.SerializedTypes;
-      } catch (PersistenceException) {
+      }
+      catch (PersistenceException) {
         throw;
-      } catch (Exception e) {
+      }
+      catch (Exception e) {
         throw new PersistenceException("Unexpected exception during Serialization.", e);
       }
Index: stable/HeuristicLab.Persistence/3.3/Default/Xml/XmlParser.cs
===================================================================
--- stable/HeuristicLab.Persistence/3.3/Default/Xml/XmlParser.cs	(revision 11931)
+++ stable/HeuristicLab.Persistence/3.3/Default/Xml/XmlParser.cs	(revision 11932)
@@ -29,5 +29,4 @@
 using HeuristicLab.Persistence.Core.Tokens;
 using HeuristicLab.Persistence.Interfaces;
-using ICSharpCode.SharpZipLib.Zip;
 
 namespace HeuristicLab.Persistence.Default.Xml {
@@ -193,6 +192,8 @@
       TimeSpan start = System.Diagnostics.Process.GetCurrentProcess().TotalProcessorTime;
       try {
-        using (ZipFile file = new ZipFile(filename)) {
-          return Deserialize(file);
+        using (FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read)) {
+          using (ZipArchive zip = new ZipArchive(fs)) {
+            return Deserialize(zip);
+          }
         }
       }
@@ -247,17 +248,21 @@
     }
 
-    private static object Deserialize(ZipFile zipFile) {
-      try {
-        ZipEntry typecache = zipFile.GetEntry("typecache.xml");
-        if (typecache == null)
-          throw new PersistenceException("file does not contain typecache.xml");
-        Deserializer deSerializer = new Deserializer(ParseTypeCache(new StreamReader(zipFile.GetInputStream(typecache))));
-        ZipEntry data = zipFile.GetEntry("data.xml");
-        if (data == null)
-          throw new PersistenceException("file does not contain data.xml");
-        XmlParser parser = new XmlParser(
-          new StreamReader(zipFile.GetInputStream(data)));
-        object result = deSerializer.Deserialize(parser);
-        zipFile.Close();
+    private static object Deserialize(ZipArchive zipFile) {
+      try {
+        ZipArchiveEntry typecache = zipFile.GetEntry("typecache.xml");
+        if (typecache == null) throw new PersistenceException("file does not contain typecache.xml");
+        Deserializer deSerializer;
+        using (StreamReader sr = new StreamReader(typecache.Open())) {
+          deSerializer = new Deserializer(ParseTypeCache(sr));
+        }
+
+        ZipArchiveEntry data = zipFile.GetEntry("data.xml");
+        if (data == null) throw new PersistenceException("file does not contain data.xml");
+        object result;
+        using (StreamReader sr = new StreamReader(data.Open())) {
+          XmlParser parser = new XmlParser(sr);
+          result = deSerializer.Deserialize(parser);
+        }
+
         return result;
       }
Index: stable/HeuristicLab.Persistence/3.3/HeuristicLab.Persistence-3.3.csproj
===================================================================
--- stable/HeuristicLab.Persistence/3.3/HeuristicLab.Persistence-3.3.csproj	(revision 11931)
+++ stable/HeuristicLab.Persistence/3.3/HeuristicLab.Persistence-3.3.csproj	(revision 11932)
@@ -116,9 +116,4 @@
   -->
   <ItemGroup>
-    <Reference Include="ICSharpCode.SharpZipLib, Version=0.85.4.369, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\..\bin\ICSharpCode.SharpZipLib.dll</HintPath>
-      <Private>False</Private>
-    </Reference>
     <Reference Include="System" />
     <Reference Include="System.configuration" />
@@ -128,4 +123,5 @@
     <Reference Include="System.Data" />
     <Reference Include="System.Drawing" />
+    <Reference Include="System.IO.Compression" />
     <Reference Include="System.Xml" />
   </ItemGroup>
Index: stable/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManager.cs
===================================================================
--- stable/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManager.cs	(revision 11931)
+++ stable/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManager.cs	(revision 11932)
@@ -23,8 +23,8 @@
 using System.Collections.Generic;
 using System.IO;
+using System.IO.Compression;
 using System.Linq;
 using System.ServiceModel;
 using HeuristicLab.PluginInfrastructure.Manager;
-using ICSharpCode.SharpZipLib.Zip;
 
 namespace HeuristicLab.PluginInfrastructure.Advanced {
@@ -183,29 +183,33 @@
 
     private void Unpack(byte[] zippedPackage) {
-      using (ZipInputStream s = new ZipInputStream(new MemoryStream(zippedPackage))) {
-        ZipEntry theEntry;
-        while ((theEntry = s.GetNextEntry()) != null) {
-          string directoryName = pluginDir;
-          string fileName = Path.GetFileName(theEntry.Name);
-          // create directory 
-          if (!string.IsNullOrEmpty(directoryName)) {
-            Directory.CreateDirectory(directoryName);
-          }
-          if (!string.IsNullOrEmpty(fileName)) {
-            string fullPath = Path.Combine(directoryName, fileName);
-            string fullDirPath = Path.GetDirectoryName(fullPath);
-            if (!Directory.Exists(fullDirPath)) Directory.CreateDirectory(fullDirPath);
-            using (FileStream streamWriter = File.Create(fullPath)) {
-              int size = 2048;
-              byte[] data = new byte[2048];
-              while (true) {
-                size = s.Read(data, 0, data.Length);
-                if (size > 0) {
-                  streamWriter.Write(data, 0, size);
-                } else {
-                  break;
+      using (MemoryStream memStream = new MemoryStream(zippedPackage)) {
+        using (ZipArchive zip = new ZipArchive(memStream, ZipArchiveMode.Read)) {
+          foreach (var theEntry in zip.Entries) {
+            string directoryName = pluginDir;
+            string fileName = Path.GetFileName(theEntry.Name);
+            // create directory 
+            if (!string.IsNullOrEmpty(directoryName)) {
+              Directory.CreateDirectory(directoryName);
+            }
+            if (!string.IsNullOrEmpty(fileName)) {
+              string fullPath = Path.Combine(directoryName, fileName);
+              string fullDirPath = Path.GetDirectoryName(fullPath);
+              if (!Directory.Exists(fullDirPath)) Directory.CreateDirectory(fullDirPath);
+              using (FileStream streamWriter = File.Create(fullPath)) {
+                int size = 2048;
+                byte[] data = new byte[2048];
+
+                using (BinaryReader reader = new BinaryReader(theEntry.Open())) {
+                  while (true) {
+                    size = reader.Read(data, 0, data.Length);
+                    if (size > 0) {
+                      streamWriter.Write(data, 0, size);
+                    } else {
+                      break;
+                    }
+                  }
                 }
+                streamWriter.Close();
               }
-              streamWriter.Close();
             }
           }
Index: stable/HeuristicLab.PluginInfrastructure/3.3/Advanced/UploadPluginsView.cs
===================================================================
--- stable/HeuristicLab.PluginInfrastructure/3.3/Advanced/UploadPluginsView.cs	(revision 11931)
+++ stable/HeuristicLab.PluginInfrastructure/3.3/Advanced/UploadPluginsView.cs	(revision 11932)
@@ -25,9 +25,9 @@
 using System.Drawing;
 using System.IO;
+using System.IO.Compression;
 using System.Linq;
 using System.ServiceModel;
 using System.Windows.Forms;
 using HeuristicLab.PluginInfrastructure.Manager;
-using ICSharpCode.SharpZipLib.Zip;
 
 namespace HeuristicLab.PluginInfrastructure.Advanced {
@@ -262,10 +262,8 @@
     private static byte[] CreateZipPackage(IPluginDescription plugin) {
       using (MemoryStream stream = new MemoryStream()) {
-        ZipFile zipFile = new ZipFile(stream);
-        zipFile.BeginUpdate();
+        ZipArchive zipFile = new ZipArchive(stream, ZipArchiveMode.Create);
         foreach (var file in plugin.Files) {
-          zipFile.Add(file.Name);
-        }
-        zipFile.CommitUpdate();
+          zipFile.CreateEntry(file.Name);
+        }
         stream.Seek(0, SeekOrigin.Begin);
         return stream.GetBuffer();
Index: stable/HeuristicLab.PluginInfrastructure/3.3/HeuristicLab.PluginInfrastructure-3.3.csproj
===================================================================
--- stable/HeuristicLab.PluginInfrastructure/3.3/HeuristicLab.PluginInfrastructure-3.3.csproj	(revision 11931)
+++ stable/HeuristicLab.PluginInfrastructure/3.3/HeuristicLab.PluginInfrastructure-3.3.csproj	(revision 11932)
@@ -114,11 +114,9 @@
     <Reference Include="System.Drawing" />
     <Reference Include="System.IdentityModel" />
+    <Reference Include="System.IO.Compression" />
     <Reference Include="System.Runtime.Serialization" />
     <Reference Include="System.ServiceModel" />
     <Reference Include="System.Windows.Forms" />
     <Reference Include="System.Xml" />
-    <Reference Include="ICSharpCode.SharpZipLib">
-      <HintPath>ICSharpCode.SharpZipLib.dll</HintPath>
-    </Reference>
   </ItemGroup>
   <ItemGroup>
@@ -316,10 +314,4 @@
   </ItemGroup>
   <ItemGroup>
-    <Content Include="ICSharpCode.SharpZipLib License.txt">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </Content>
-    <Content Include="ICSharpCode.SharpZipLib.dll">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </Content>
     <EmbeddedResource Include="Advanced\DeploymentService\services.heuristiclab.com.cer" />
     <None Include="Resources\Error.ico" />
Index: stable/HeuristicLab.PluginInfrastructure/3.3/ICSharpCode.SharpZipLib License.txt
===================================================================
--- stable/HeuristicLab.PluginInfrastructure/3.3/ICSharpCode.SharpZipLib License.txt	(revision 11931)
+++ 	(revision )
@@ -1,13 +1,0 @@
-#ziplib (SharpZipLib, formerly NZipLib) is a Zip, GZip, Tar and BZip2 library written entirely in C# for the .NET platform. It is implemented as an assembly (installable in the GAC), and thus can easily be incorporated into other projects (in any .NET language). The creator of #ziplib put it this way: "I've ported the zip library over to C# because I needed gzip/zip compression and I didn't want to use libzip.dll or something like this. I want all in pure C#."
-
-License
-
-The library is released under the GPL with the following exception:
-
-Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination.
-
-As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.
-
-Note: The exception is changed to reflect the latest GNU Classpath exception. Older versions of #ziplib did have another exception, but the new one is clearer and it doesn't break compatibility with the old one.
-
-Bottom line: In plain English this means you can use this library in commercial closed-source applications.
Index: stable/HeuristicLab.Problems.Instances.CordeauGQAP/3.3/CordeauGQAPInstanceProvider.cs
===================================================================
--- stable/HeuristicLab.Problems.Instances.CordeauGQAP/3.3/CordeauGQAPInstanceProvider.cs	(revision 11931)
+++ stable/HeuristicLab.Problems.Instances.CordeauGQAP/3.3/CordeauGQAPInstanceProvider.cs	(revision 11932)
@@ -23,8 +23,8 @@
 using System.Collections.Generic;
 using System.IO;
+using System.IO.Compression;
 using System.Linq;
 using System.Reflection;
 using System.Text.RegularExpressions;
-using ICSharpCode.SharpZipLib.Zip;
 
 namespace HeuristicLab.Problems.Instances.CordeauGQAP {
@@ -56,6 +56,6 @@
       if (String.IsNullOrEmpty(instanceArchiveName)) yield break;
 
-      using (var instanceStream = new ZipInputStream(GetType().Assembly.GetManifestResourceStream(instanceArchiveName))) {
-        foreach (var entry in GetZipContents(instanceStream).OrderBy(x => x)) {
+      using (var instanceStream = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
+        foreach (var entry in instanceStream.Entries.Select(x => x.Name).OrderBy(x => x)) {
           yield return new CordeauGQAPDataDescriptor(Path.GetFileNameWithoutExtension(entry), GetDescription(), entry);
         }
@@ -66,7 +66,7 @@
       var descriptor = (CordeauGQAPDataDescriptor)id;
       var instanceArchiveName = GetResourceName(FileName + @"\.zip");
-      using (var instancesZipFile = new ZipFile(GetType().Assembly.GetManifestResourceStream(instanceArchiveName))) {
+      using (var instancesZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
         var entry = instancesZipFile.GetEntry(descriptor.InstanceIdentifier);
-        using (var stream = instancesZipFile.GetInputStream(entry)) {
+        using (var stream = entry.Open()) {
           var parser = new CordeauGQAPParser();
           parser.Parse(stream);
@@ -117,11 +117,4 @@
               .Where(x => Regex.Match(x, @".*\.Data\." + fileName).Success).SingleOrDefault();
     }
-
-    protected IEnumerable<string> GetZipContents(ZipInputStream zipFile) {
-      ZipEntry entry;
-      while ((entry = zipFile.GetNextEntry()) != null) {
-        yield return entry.Name;
-      }
-    }
   }
 }
Index: stable/HeuristicLab.Problems.Instances.CordeauGQAP/3.3/HeuristicLab.Problems.Instances.CordeauGQAP-3.3.csproj
===================================================================
--- stable/HeuristicLab.Problems.Instances.CordeauGQAP/3.3/HeuristicLab.Problems.Instances.CordeauGQAP-3.3.csproj	(revision 11931)
+++ stable/HeuristicLab.Problems.Instances.CordeauGQAP/3.3/HeuristicLab.Problems.Instances.CordeauGQAP-3.3.csproj	(revision 11932)
@@ -109,11 +109,8 @@
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="ICSharpCode.SharpZipLib">
-      <HintPath>..\..\HeuristicLab.PluginInfrastructure\3.3\ICSharpCode.SharpZipLib.dll</HintPath>
-      <Private>False</Private>
-    </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core" />
     <Reference Include="System.Data" />
+    <Reference Include="System.IO.Compression" />
   </ItemGroup>
   <ItemGroup>
Index: stable/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Classification/ResourceClassificationInstanceProvider.cs
===================================================================
--- stable/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Classification/ResourceClassificationInstanceProvider.cs	(revision 11931)
+++ stable/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Classification/ResourceClassificationInstanceProvider.cs	(revision 11932)
@@ -23,9 +23,9 @@
 using System.Globalization;
 using System.IO;
+using System.IO.Compression;
 using System.Linq;
 using System.Reflection;
 using System.Text.RegularExpressions;
 using HeuristicLab.Problems.DataAnalysis;
-using ICSharpCode.SharpZipLib.Zip;
 
 namespace HeuristicLab.Problems.Instances.DataAnalysis {
@@ -38,15 +38,15 @@
 
       var instanceArchiveName = GetResourceName(FileName + @"\.zip");
-      using (var instancesZipFile = new ZipFile(GetType().Assembly.GetManifestResourceStream(instanceArchiveName))) {
+      using (var instancesZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
         var entry = instancesZipFile.GetEntry(descriptor.ResourceName);
         NumberFormatInfo numberFormat;
         DateTimeFormatInfo dateFormat;
         char separator;
-        using (Stream stream = instancesZipFile.GetInputStream(entry)) {
+        using (Stream stream = entry.Open()) {
           TableFileParser.DetermineFileFormat(stream, out numberFormat, out dateFormat, out separator);
         }
 
         TableFileParser csvFileParser = new TableFileParser();
-        using (Stream stream = instancesZipFile.GetInputStream(entry)) {
+        using (Stream stream = entry.Open()) {
           csvFileParser.Parse(stream, numberFormat, dateFormat, separator, true);
         }
Index: stable/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Classification/UCI/UCIInstanceProvider.cs
===================================================================
--- stable/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Classification/UCI/UCIInstanceProvider.cs	(revision 11931)
+++ stable/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Classification/UCI/UCIInstanceProvider.cs	(revision 11932)
@@ -23,6 +23,6 @@
 using System.Collections.Generic;
 using System.IO;
+using System.IO.Compression;
 using System.Linq;
-using ICSharpCode.SharpZipLib.Zip;
 
 namespace HeuristicLab.Problems.Instances.DataAnalysis {
@@ -56,8 +56,7 @@
       var solutionsArchiveName = GetResourceName(FileName + @"\.zip");
       if (!String.IsNullOrEmpty(solutionsArchiveName)) {
-        using (var solutionsZipFile = new ZipInputStream(GetType().Assembly.GetManifestResourceStream(solutionsArchiveName))) {
+        using (var solutionsZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(solutionsArchiveName), ZipArchiveMode.Read)) {
           IList<string> entries = new List<string>();
-          ZipEntry curEntry;
-          while ((curEntry = solutionsZipFile.GetNextEntry()) != null) {
+          foreach (var curEntry in solutionsZipFile.Entries) {
             entries.Add(curEntry.Name);
           }
Index: stable/HeuristicLab.Problems.Instances.DataAnalysis/3.3/HeuristicLab.Problems.Instances.DataAnalysis-3.3.csproj
===================================================================
--- stable/HeuristicLab.Problems.Instances.DataAnalysis/3.3/HeuristicLab.Problems.Instances.DataAnalysis-3.3.csproj	(revision 11931)
+++ stable/HeuristicLab.Problems.Instances.DataAnalysis/3.3/HeuristicLab.Problems.Instances.DataAnalysis-3.3.csproj	(revision 11932)
@@ -105,11 +105,8 @@
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="ICSharpCode.SharpZipLib">
-      <HintPath>..\..\HeuristicLab.PluginInfrastructure\3.3\ICSharpCode.SharpZipLib.dll</HintPath>
-      <Private>False</Private>
-    </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core" />
     <Reference Include="System.Drawing" />
+    <Reference Include="System.IO.Compression" />
     <Reference Include="System.Windows.Forms" />
     <Reference Include="System.Xml.Linq" />
Index: stable/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/RealWorld/RealWorldRegressionInstanceProvider.cs
===================================================================
--- stable/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/RealWorld/RealWorldRegressionInstanceProvider.cs	(revision 11931)
+++ stable/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/RealWorld/RealWorldRegressionInstanceProvider.cs	(revision 11932)
@@ -23,6 +23,6 @@
 using System.Collections.Generic;
 using System.IO;
+using System.IO.Compression;
 using System.Linq;
-using ICSharpCode.SharpZipLib.Zip;
 
 namespace HeuristicLab.Problems.Instances.DataAnalysis {
@@ -52,8 +52,7 @@
       var solutionsArchiveName = GetResourceName(FileName + @"\.zip");
       if (!String.IsNullOrEmpty(solutionsArchiveName)) {
-        using (var solutionsZipFile = new ZipInputStream(GetType().Assembly.GetManifestResourceStream(solutionsArchiveName))) {
+        using (var solutionsZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(solutionsArchiveName), ZipArchiveMode.Read)) {
           IList<string> entries = new List<string>();
-          ZipEntry curEntry;
-          while ((curEntry = solutionsZipFile.GetNextEntry()) != null) {
+          foreach (var curEntry in solutionsZipFile.Entries) {
             entries.Add(curEntry.Name);
           }
Index: stable/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/ResourceRegressionInstanceProvider.cs
===================================================================
--- stable/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/ResourceRegressionInstanceProvider.cs	(revision 11931)
+++ stable/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/ResourceRegressionInstanceProvider.cs	(revision 11932)
@@ -23,9 +23,9 @@
 using System.Globalization;
 using System.IO;
+using System.IO.Compression;
 using System.Linq;
 using System.Reflection;
 using System.Text.RegularExpressions;
 using HeuristicLab.Problems.DataAnalysis;
-using ICSharpCode.SharpZipLib.Zip;
 
 namespace HeuristicLab.Problems.Instances.DataAnalysis {
@@ -38,15 +38,15 @@
 
       var instanceArchiveName = GetResourceName(FileName + @"\.zip");
-      using (var instancesZipFile = new ZipFile(GetType().Assembly.GetManifestResourceStream(instanceArchiveName))) {
+      using (var instancesZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
         var entry = instancesZipFile.GetEntry(descriptor.ResourceName);
         NumberFormatInfo numberFormat;
         DateTimeFormatInfo dateFormat;
         char separator;
-        using (Stream stream = instancesZipFile.GetInputStream(entry)) {
+        using (Stream stream = entry.Open()) {
           TableFileParser.DetermineFileFormat(stream, out numberFormat, out dateFormat, out separator);
         }
 
         TableFileParser csvFileParser = new TableFileParser();
-        using (Stream stream = instancesZipFile.GetInputStream(entry)) {
+        using (Stream stream = entry.Open()) {
           csvFileParser.Parse(stream, numberFormat, dateFormat, separator, true);
         }
Index: stable/HeuristicLab.Problems.Instances.ElloumiCTAP/3.3/ElloumiCTAPInstanceProvider.cs
===================================================================
--- stable/HeuristicLab.Problems.Instances.ElloumiCTAP/3.3/ElloumiCTAPInstanceProvider.cs	(revision 11931)
+++ stable/HeuristicLab.Problems.Instances.ElloumiCTAP/3.3/ElloumiCTAPInstanceProvider.cs	(revision 11932)
@@ -23,8 +23,8 @@
 using System.Collections.Generic;
 using System.IO;
+using System.IO.Compression;
 using System.Linq;
 using System.Reflection;
 using System.Text.RegularExpressions;
-using ICSharpCode.SharpZipLib.Zip;
 
 namespace HeuristicLab.Problems.Instances.ElloumiCTAP {
@@ -56,7 +56,7 @@
       var solutionsArchiveName = GetResourceName(FileName + @"\.sol\.zip");
       if (!String.IsNullOrEmpty(solutionsArchiveName)) {
-        using (var solutionsZipFile = new ZipInputStream(GetType().Assembly.GetManifestResourceStream(solutionsArchiveName))) {
-          foreach (var entry in GetZipContents(solutionsZipFile))
-            solutions.Add(Path.GetFileNameWithoutExtension(entry) + ".dat", entry);
+        using (var solutionsZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(solutionsArchiveName), ZipArchiveMode.Read)) {
+          foreach (var entry in solutionsZipFile.Entries)
+            solutions.Add(Path.GetFileNameWithoutExtension(entry.Name) + ".dat", entry.Name);
         }
       }
@@ -64,6 +64,6 @@
       if (String.IsNullOrEmpty(instanceArchiveName)) yield break;
 
-      using (var instanceStream = new ZipInputStream(GetType().Assembly.GetManifestResourceStream(instanceArchiveName))) {
-        foreach (var entry in GetZipContents(instanceStream).OrderBy(x => x)) {
+      using (var instanceStream = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
+        foreach (var entry in instanceStream.Entries.Select(x => x.Name).OrderBy(x => x)) {
           yield return new ElloumiCTAPDataDescriptor(Path.GetFileNameWithoutExtension(entry), GetDescription(), entry, solutions.ContainsKey(entry) ? solutions[entry] : String.Empty);
         }
@@ -74,7 +74,7 @@
       var descriptor = (ElloumiCTAPDataDescriptor)id;
       var instanceArchiveName = GetResourceName(FileName + @"\.dat\.zip");
-      using (var instancesZipFile = new ZipFile(GetType().Assembly.GetManifestResourceStream(instanceArchiveName))) {
+      using (var instancesZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
         var entry = instancesZipFile.GetEntry(descriptor.InstanceIdentifier);
-        using (var stream = instancesZipFile.GetInputStream(entry)) {
+        using (var stream = entry.Open()) {
           var parser = new ElloumiCTAPParser();
           parser.Parse(stream);
@@ -86,7 +86,7 @@
           if (!String.IsNullOrEmpty(descriptor.SolutionIdentifier)) {
             var solutionsArchiveName = GetResourceName(FileName + @"\.sol\.zip");
-            using (var solutionsZipFile = new ZipFile(GetType().Assembly.GetManifestResourceStream(solutionsArchiveName))) {
+            using (var solutionsZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(solutionsArchiveName), ZipArchiveMode.Read)) {
               entry = solutionsZipFile.GetEntry(descriptor.SolutionIdentifier);
-              using (var solStream = solutionsZipFile.GetInputStream(entry)) {
+              using (var solStream = entry.Open()) {
                 ElloumiCTAPSolutionParser slnParser = new ElloumiCTAPSolutionParser();
                 slnParser.Parse(solStream, instance.MemoryRequirements.Length);
@@ -138,11 +138,4 @@
               .Where(x => Regex.Match(x, @".*\.Data\." + fileName).Success).SingleOrDefault();
     }
-
-    protected IEnumerable<string> GetZipContents(ZipInputStream zipFile) {
-      ZipEntry entry;
-      while ((entry = zipFile.GetNextEntry()) != null) {
-        yield return entry.Name;
-      }
-    }
   }
 }
Index: stable/HeuristicLab.Problems.Instances.ElloumiCTAP/3.3/HeuristicLab.Problems.Instances.ElloumiCTAP-3.3.csproj
===================================================================
--- stable/HeuristicLab.Problems.Instances.ElloumiCTAP/3.3/HeuristicLab.Problems.Instances.ElloumiCTAP-3.3.csproj	(revision 11931)
+++ stable/HeuristicLab.Problems.Instances.ElloumiCTAP/3.3/HeuristicLab.Problems.Instances.ElloumiCTAP-3.3.csproj	(revision 11932)
@@ -109,11 +109,8 @@
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="ICSharpCode.SharpZipLib">
-      <HintPath>..\..\HeuristicLab.PluginInfrastructure\3.3\ICSharpCode.SharpZipLib.dll</HintPath>
-      <Private>False</Private>
-    </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core" />
     <Reference Include="System.Data" />
+    <Reference Include="System.IO.Compression" />
   </ItemGroup>
   <ItemGroup>
Index: stable/HeuristicLab.Problems.Instances.QAPLIB/3.3/HeuristicLab.Problems.Instances.QAPLIB-3.3.csproj
===================================================================
--- stable/HeuristicLab.Problems.Instances.QAPLIB/3.3/HeuristicLab.Problems.Instances.QAPLIB-3.3.csproj	(revision 11931)
+++ stable/HeuristicLab.Problems.Instances.QAPLIB/3.3/HeuristicLab.Problems.Instances.QAPLIB-3.3.csproj	(revision 11932)
@@ -109,11 +109,8 @@
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="ICSharpCode.SharpZipLib">
-      <HintPath>..\..\HeuristicLab.PluginInfrastructure\3.3\ICSharpCode.SharpZipLib.dll</HintPath>
-      <Private>False</Private>
-    </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core" />
     <Reference Include="System.Data" />
+    <Reference Include="System.IO.Compression" />
   </ItemGroup>
   <ItemGroup>
Index: stable/HeuristicLab.Problems.Instances.QAPLIB/3.3/QAPLIBInstanceProvider.cs
===================================================================
--- stable/HeuristicLab.Problems.Instances.QAPLIB/3.3/QAPLIBInstanceProvider.cs	(revision 11931)
+++ stable/HeuristicLab.Problems.Instances.QAPLIB/3.3/QAPLIBInstanceProvider.cs	(revision 11932)
@@ -23,8 +23,8 @@
 using System.Collections.Generic;
 using System.IO;
+using System.IO.Compression;
 using System.Linq;
 using System.Reflection;
 using System.Text.RegularExpressions;
-using ICSharpCode.SharpZipLib.Zip;
 
 namespace HeuristicLab.Problems.Instances.QAPLIB {
@@ -34,5 +34,5 @@
     protected virtual HashSet<string> ReversedSolutions {
       get {
-            return new HashSet<string>(new string[] {
+        return new HashSet<string>(new string[] {
               "bur26a",
               "bur26b",
@@ -177,7 +177,7 @@
       var solutionsArchiveName = GetResourceName(FileName + @"\.sln\.zip");
       if (!String.IsNullOrEmpty(solutionsArchiveName)) {
-        using (var solutionsZipFile = new ZipInputStream(GetType().Assembly.GetManifestResourceStream(solutionsArchiveName))) {
-          foreach (var entry in GetZipContents(solutionsZipFile))
-            solutions.Add(Path.GetFileNameWithoutExtension(entry) + ".dat", entry);
+        using (var solutionsZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(solutionsArchiveName), ZipArchiveMode.Read)) {
+          foreach (var entry in solutionsZipFile.Entries)
+            solutions.Add(Path.GetFileNameWithoutExtension(entry.Name) + ".dat", entry.Name);
         }
       }
@@ -185,6 +185,6 @@
       if (String.IsNullOrEmpty(instanceArchiveName)) yield break;
 
-      using (var instanceStream = new ZipInputStream(GetType().Assembly.GetManifestResourceStream(instanceArchiveName))) {
-        foreach (var entry in GetZipContents(instanceStream).OrderBy(x => x)) {
+      using (var instanceStream = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
+        foreach (var entry in instanceStream.Entries.Select(x => x.Name).OrderBy(x => x)) {
           yield return new QAPLIBDataDescriptor(Path.GetFileNameWithoutExtension(entry), GetDescription(), entry, solutions.ContainsKey(entry) ? solutions[entry] : String.Empty);
         }
@@ -195,8 +195,8 @@
       var descriptor = (QAPLIBDataDescriptor)id;
       var instanceArchiveName = GetResourceName(FileName + @"\.dat\.zip");
-      using (var instancesZipFile = new ZipFile(GetType().Assembly.GetManifestResourceStream(instanceArchiveName))) {
+      using (var instancesZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
         var entry = instancesZipFile.GetEntry(descriptor.InstanceIdentifier);
 
-        using (var stream = instancesZipFile.GetInputStream(entry)) {
+        using (var stream = entry.Open()) {
           var parser = new QAPLIBParser();
           parser.Parse(stream);
@@ -207,7 +207,7 @@
           if (!String.IsNullOrEmpty(descriptor.SolutionIdentifier)) {
             var solutionsArchiveName = GetResourceName(FileName + @"\.sln\.zip");
-            using (var solutionsZipFile = new ZipFile(GetType().Assembly.GetManifestResourceStream(solutionsArchiveName))) {
+            using (var solutionsZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(solutionsArchiveName), ZipArchiveMode.Read)) {
               entry = solutionsZipFile.GetEntry(descriptor.SolutionIdentifier);
-              using (var solStream = solutionsZipFile.GetInputStream(entry)) {
+              using (var solStream = entry.Open()) {
                 var slnParser = new QAPLIBSolutionParser();
                 slnParser.Parse(solStream, true);
@@ -258,11 +258,4 @@
               .Where(x => Regex.Match(x, @".*\.Data\." + fileName).Success).SingleOrDefault();
     }
-
-    protected IEnumerable<string> GetZipContents(ZipInputStream zipFile) {
-      ZipEntry entry;
-      while ((entry = zipFile.GetNextEntry()) != null) {
-        yield return entry.Name;
-      }
-    }
   }
 }
Index: stable/HeuristicLab.Problems.Instances.Scheduling/3.3/HeuristicLab.Problems.Instances.Scheduling-3.3.csproj
===================================================================
--- stable/HeuristicLab.Problems.Instances.Scheduling/3.3/HeuristicLab.Problems.Instances.Scheduling-3.3.csproj	(revision 11931)
+++ stable/HeuristicLab.Problems.Instances.Scheduling/3.3/HeuristicLab.Problems.Instances.Scheduling-3.3.csproj	(revision 11932)
@@ -113,11 +113,8 @@
       <Private>False</Private>
     </Reference>
-    <Reference Include="ICSharpCode.SharpZipLib, Version=0.85.4.369">
-      <HintPath>..\bin\ICSharpCode.SharpZipLib.dll</HintPath>
-      <Private>False</Private>
-    </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core" />
     <Reference Include="System.Data" />
+    <Reference Include="System.IO.Compression" />
   </ItemGroup>
   <ItemGroup>
Index: stable/HeuristicLab.Problems.Instances.Scheduling/3.3/JSSPORLIBInstanceProvider.cs
===================================================================
--- stable/HeuristicLab.Problems.Instances.Scheduling/3.3/JSSPORLIBInstanceProvider.cs	(revision 11931)
+++ stable/HeuristicLab.Problems.Instances.Scheduling/3.3/JSSPORLIBInstanceProvider.cs	(revision 11932)
@@ -23,8 +23,8 @@
 using System.Collections.Generic;
 using System.IO;
+using System.IO.Compression;
 using System.Linq;
 using System.Reflection;
 using System.Text.RegularExpressions;
-using ICSharpCode.SharpZipLib.Zip;
 
 namespace HeuristicLab.Problems.Instances.Scheduling {
@@ -51,6 +51,6 @@
       if (String.IsNullOrEmpty(instanceArchiveName)) yield break;
 
-      using (var instanceStream = new ZipInputStream(GetType().Assembly.GetManifestResourceStream(instanceArchiveName))) {
-        foreach (var entry in GetZipContents(instanceStream).OrderBy(x => x)) {
+      using (var instanceStream = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
+        foreach (var entry in instanceStream.Entries.Select(x => x.Name).OrderBy(x => x)) {
           yield return new JSSPORLIBDataDescriptor(Path.GetFileNameWithoutExtension(entry), GetDescription(), entry, null);
         }
@@ -61,8 +61,8 @@
       var descriptor = (JSSPORLIBDataDescriptor)id;
       var instanceArchiveName = GetResourceName("JSSPORLIB.zip");
-      using (var instancesZipFile = new ZipFile(GetType().Assembly.GetManifestResourceStream(instanceArchiveName))) {
+      using (var instancesZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
         var entry = instancesZipFile.GetEntry(descriptor.InstanceIdentifier);
 
-        using (var stream = instancesZipFile.GetInputStream(entry)) {
+        using (var stream = entry.Open()) {
           var parser = new JSSPORLIBParser();
           parser.Parse(stream);
@@ -124,11 +124,4 @@
         .SingleOrDefault(x => Regex.Match(x, @".*\.Data\." + fileName).Success);
     }
-
-    protected IEnumerable<string> GetZipContents(ZipInputStream zipFile) {
-      ZipEntry entry;
-      while ((entry = zipFile.GetNextEntry()) != null) {
-        yield return entry.Name;
-      }
-    }
   }
 }
Index: stable/HeuristicLab.Problems.Instances.TSPLIB/3.3/HeuristicLab.Problems.Instances.TSPLIB-3.3.csproj
===================================================================
--- stable/HeuristicLab.Problems.Instances.TSPLIB/3.3/HeuristicLab.Problems.Instances.TSPLIB-3.3.csproj	(revision 11931)
+++ stable/HeuristicLab.Problems.Instances.TSPLIB/3.3/HeuristicLab.Problems.Instances.TSPLIB-3.3.csproj	(revision 11932)
@@ -109,11 +109,8 @@
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="ICSharpCode.SharpZipLib">
-      <HintPath>..\..\HeuristicLab.PluginInfrastructure\3.3\ICSharpCode.SharpZipLib.dll</HintPath>
-      <Private>False</Private>
-    </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core" />
     <Reference Include="System.Data" />
+    <Reference Include="System.IO.Compression" />
   </ItemGroup>
   <ItemGroup>
Index: stable/HeuristicLab.Problems.Instances.TSPLIB/3.3/TSPLIBInstanceProvider.cs
===================================================================
--- stable/HeuristicLab.Problems.Instances.TSPLIB/3.3/TSPLIBInstanceProvider.cs	(revision 11931)
+++ stable/HeuristicLab.Problems.Instances.TSPLIB/3.3/TSPLIBInstanceProvider.cs	(revision 11932)
@@ -23,8 +23,8 @@
 using System.Collections.Generic;
 using System.IO;
+using System.IO.Compression;
 using System.Linq;
 using System.Reflection;
 using System.Text.RegularExpressions;
-using ICSharpCode.SharpZipLib.Zip;
 
 namespace HeuristicLab.Problems.Instances.TSPLIB {
@@ -52,7 +52,7 @@
       var solutionsArchiveName = GetResourceName(FileExtension + @"\.opt\.tour\.zip");
       if (!String.IsNullOrEmpty(solutionsArchiveName)) {
-        using (var solutionsZipFile = new ZipInputStream(GetType().Assembly.GetManifestResourceStream(solutionsArchiveName))) {
-          foreach (var entry in GetZipContents(solutionsZipFile))
-            solutions.Add(entry.Substring(0, entry.Length - ".opt.tour".Length) + "." + FileExtension, entry);
+        using (var solutionsZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(solutionsArchiveName), ZipArchiveMode.Read)) {
+          foreach (var entry in solutionsZipFile.Entries)
+            solutions.Add(entry.Name.Substring(0, entry.Name.Length - ".opt.tour".Length) + "." + FileExtension, entry.Name);
         }
       }
@@ -60,6 +60,6 @@
       if (String.IsNullOrEmpty(instanceArchiveName)) yield break;
 
-      using (var instanceStream = new ZipInputStream(GetType().Assembly.GetManifestResourceStream(instanceArchiveName))) {
-        foreach (var entry in GetZipContents(instanceStream).OrderBy(x => x)) {
+      using (var instanceStream = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
+        foreach (var entry in instanceStream.Entries.Select(x => x.Name).OrderBy(x => x)) {
           yield return new TSPLIBDataDescriptor(Path.GetFileNameWithoutExtension(entry), GetInstanceDescription(), entry, solutions.ContainsKey(entry) ? solutions[entry] : String.Empty);
         }
@@ -70,7 +70,7 @@
       var descriptor = (TSPLIBDataDescriptor)id;
       var instanceArchiveName = GetResourceName(FileExtension + @"\.zip");
-      using (var instancesZipFile = new ZipFile(GetType().Assembly.GetManifestResourceStream(instanceArchiveName))) {
+      using (var instancesZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
         var entry = instancesZipFile.GetEntry(descriptor.InstanceIdentifier);
-        var stream = instancesZipFile.GetInputStream(entry);
+        var stream = entry.Open();
         var parser = new TSPLIBParser(stream);
         var instance = LoadInstance(parser);
@@ -78,7 +78,7 @@
         if (!String.IsNullOrEmpty(descriptor.SolutionIdentifier)) {
           var solutionsArchiveName = GetResourceName(FileExtension + @"\.opt\.tour\.zip");
-          using (var solutionsZipFile = new ZipFile(GetType().Assembly.GetManifestResourceStream(solutionsArchiveName))) {
+          using (var solutionsZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(solutionsArchiveName), ZipArchiveMode.Read)) {
             entry = solutionsZipFile.GetEntry(descriptor.SolutionIdentifier);
-            stream = solutionsZipFile.GetInputStream(entry);
+            stream = entry.Open();
             parser = new TSPLIBParser(stream);
             LoadSolution(parser, instance);
@@ -105,11 +105,4 @@
       return "Embedded instance of plugin version " + Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyFileVersionAttribute), true).Cast<AssemblyFileVersionAttribute>().First().Version + ".";
     }
-
-    protected IEnumerable<string> GetZipContents(ZipInputStream zipFile) {
-      ZipEntry entry;
-      while ((entry = zipFile.GetNextEntry()) != null) {
-        yield return entry.Name;
-      }
-    }
   }
 }
Index: stable/HeuristicLab.Problems.Instances.VehicleRouting/3.4/HeuristicLab.Problems.Instances.VehicleRouting-3.4.csproj
===================================================================
--- stable/HeuristicLab.Problems.Instances.VehicleRouting/3.4/HeuristicLab.Problems.Instances.VehicleRouting-3.4.csproj	(revision 11931)
+++ stable/HeuristicLab.Problems.Instances.VehicleRouting/3.4/HeuristicLab.Problems.Instances.VehicleRouting-3.4.csproj	(revision 11932)
@@ -109,11 +109,8 @@
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="ICSharpCode.SharpZipLib">
-      <HintPath>..\..\HeuristicLab.PluginInfrastructure\3.3\ICSharpCode.SharpZipLib.dll</HintPath>
-      <Private>False</Private>
-    </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core" />
     <Reference Include="System.Data" />
+    <Reference Include="System.IO.Compression" />
   </ItemGroup>
   <ItemGroup>
Index: stable/HeuristicLab.Problems.Instances.VehicleRouting/3.4/LiLimFormat/LiLimInstanceProvider.cs
===================================================================
--- stable/HeuristicLab.Problems.Instances.VehicleRouting/3.4/LiLimFormat/LiLimInstanceProvider.cs	(revision 11931)
+++ stable/HeuristicLab.Problems.Instances.VehicleRouting/3.4/LiLimFormat/LiLimInstanceProvider.cs	(revision 11932)
@@ -21,10 +21,4 @@
 
 using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Reflection;
-using System.Text.RegularExpressions;
-using ICSharpCode.SharpZipLib.Zip;
 
 namespace HeuristicLab.Problems.Instances.VehicleRouting {
Index: stable/HeuristicLab.Problems.Instances.VehicleRouting/3.4/SolomonFormat/HombergerInstanceProvider.cs
===================================================================
--- stable/HeuristicLab.Problems.Instances.VehicleRouting/3.4/SolomonFormat/HombergerInstanceProvider.cs	(revision 11931)
+++ stable/HeuristicLab.Problems.Instances.VehicleRouting/3.4/SolomonFormat/HombergerInstanceProvider.cs	(revision 11932)
@@ -21,10 +21,4 @@
 
 using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Reflection;
-using System.Text.RegularExpressions;
-using ICSharpCode.SharpZipLib.Zip;
 
 namespace HeuristicLab.Problems.Instances.VehicleRouting {
Index: stable/HeuristicLab.Problems.Instances.VehicleRouting/3.4/SolomonFormat/SolomonInstanceProvider.cs
===================================================================
--- stable/HeuristicLab.Problems.Instances.VehicleRouting/3.4/SolomonFormat/SolomonInstanceProvider.cs	(revision 11931)
+++ stable/HeuristicLab.Problems.Instances.VehicleRouting/3.4/SolomonFormat/SolomonInstanceProvider.cs	(revision 11932)
@@ -21,10 +21,4 @@
 
 using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Reflection;
-using System.Text.RegularExpressions;
-using ICSharpCode.SharpZipLib.Zip;
 
 namespace HeuristicLab.Problems.Instances.VehicleRouting {
@@ -37,5 +31,5 @@
       get { return "Solomon test set"; }
     }
-    
+
     public override Uri WebLink {
       get { return new Uri(@"http://web.cba.neu.edu/~msolomon/problems.htm"); }
Index: stable/HeuristicLab.Problems.Instances.VehicleRouting/3.4/TSPLibFormat/AugeratInstanceProvider.cs
===================================================================
--- stable/HeuristicLab.Problems.Instances.VehicleRouting/3.4/TSPLibFormat/AugeratInstanceProvider.cs	(revision 11931)
+++ stable/HeuristicLab.Problems.Instances.VehicleRouting/3.4/TSPLibFormat/AugeratInstanceProvider.cs	(revision 11932)
@@ -21,10 +21,4 @@
 
 using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Reflection;
-using System.Text.RegularExpressions;
-using ICSharpCode.SharpZipLib.Zip;
 
 namespace HeuristicLab.Problems.Instances.VehicleRouting {
@@ -37,5 +31,5 @@
       get { return "Augerat test set"; }
     }
-    
+
     public override Uri WebLink {
       get { return new Uri(@"http://www.branchandcut.org/VRP/data"); }
Index: stable/HeuristicLab.Problems.Instances.VehicleRouting/3.4/TSPLibFormat/ChristofidesEilonInstanceProvider.cs
===================================================================
--- stable/HeuristicLab.Problems.Instances.VehicleRouting/3.4/TSPLibFormat/ChristofidesEilonInstanceProvider.cs	(revision 11931)
+++ stable/HeuristicLab.Problems.Instances.VehicleRouting/3.4/TSPLibFormat/ChristofidesEilonInstanceProvider.cs	(revision 11932)
@@ -21,10 +21,4 @@
 
 using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Reflection;
-using System.Text.RegularExpressions;
-using ICSharpCode.SharpZipLib.Zip;
 
 namespace HeuristicLab.Problems.Instances.VehicleRouting {
@@ -37,5 +31,5 @@
       get { return "Christofides and Eilon test set"; }
     }
-    
+
     public override Uri WebLink {
       get { return new Uri(@"http://www.branchandcut.org/VRP/data"); }
Index: stable/HeuristicLab.Problems.Instances.VehicleRouting/3.4/TaillardFormat/TaillardInstanceProvider.cs
===================================================================
--- stable/HeuristicLab.Problems.Instances.VehicleRouting/3.4/TaillardFormat/TaillardInstanceProvider.cs	(revision 11931)
+++ stable/HeuristicLab.Problems.Instances.VehicleRouting/3.4/TaillardFormat/TaillardInstanceProvider.cs	(revision 11932)
@@ -21,10 +21,4 @@
 
 using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Reflection;
-using System.Text.RegularExpressions;
-using ICSharpCode.SharpZipLib.Zip;
 
 namespace HeuristicLab.Problems.Instances.VehicleRouting {
@@ -37,5 +31,5 @@
       get { return "Taillard test set"; }
     }
-    
+
     public override Uri WebLink {
       get { return new Uri(@"http://mistic.heig-vd.ch/taillard/problemes.dir/vrp.dir/vrp.html"); }
Index: stable/HeuristicLab.Problems.Instances.VehicleRouting/3.4/VRPInstanceProvider.cs
===================================================================
--- stable/HeuristicLab.Problems.Instances.VehicleRouting/3.4/VRPInstanceProvider.cs	(revision 11931)
+++ stable/HeuristicLab.Problems.Instances.VehicleRouting/3.4/VRPInstanceProvider.cs	(revision 11932)
@@ -23,9 +23,9 @@
 using System.Collections.Generic;
 using System.IO;
+using System.IO.Compression;
 using System.Linq;
 using System.Reflection;
 using System.Text.RegularExpressions;
 using HeuristicLab.Common;
-using ICSharpCode.SharpZipLib.Zip;
 
 namespace HeuristicLab.Problems.Instances.VehicleRouting {
@@ -37,7 +37,7 @@
       var solutionsArchiveName = GetResourceName(FileName + @"\.opt\.zip");
       if (!String.IsNullOrEmpty(solutionsArchiveName)) {
-        using (var solutionsZipFile = new ZipInputStream(GetType().Assembly.GetManifestResourceStream(solutionsArchiveName))) {
-          foreach (var entry in GetZipContents(solutionsZipFile))
-            solutions.Add(Path.GetFileNameWithoutExtension(entry) + "." + FileName, entry);
+        using (var solutionsZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(solutionsArchiveName), ZipArchiveMode.Read)) {
+          foreach (var entry in solutionsZipFile.Entries)
+            solutions.Add(Path.GetFileNameWithoutExtension(entry.Name) + "." + FileName, entry.Name);
         }
       }
@@ -45,6 +45,6 @@
       if (String.IsNullOrEmpty(instanceArchiveName)) yield break;
 
-      using (var instanceStream = new ZipInputStream(GetType().Assembly.GetManifestResourceStream(instanceArchiveName))) {
-        foreach (var entry in GetZipContents(instanceStream).OrderBy(x => x, new NaturalStringComparer())) {
+      using (var instanceStream = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
+        foreach (var entry in instanceStream.Entries.Select(x => x.Name).OrderBy(x => x, new NaturalStringComparer())) {
           string solutionEntry = Path.GetFileNameWithoutExtension(entry) + "." + FileName;
           yield return new VRPDataDescriptor(Path.GetFileNameWithoutExtension(entry), GetInstanceDescription(), entry, solutions.ContainsKey(solutionEntry) ? solutions[solutionEntry] : String.Empty);
@@ -56,7 +56,7 @@
       var descriptor = (VRPDataDescriptor)id;
       var instanceArchiveName = GetResourceName(FileName + @"\.zip");
-      using (var instancesZipFile = new ZipFile(GetType().Assembly.GetManifestResourceStream(instanceArchiveName))) {
+      using (var instancesZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName))) {
         var entry = instancesZipFile.GetEntry(descriptor.InstanceIdentifier);
-        var stream = instancesZipFile.GetInputStream(entry);
+        var stream = entry.Open();
         var instance = LoadData(stream);
         if (string.IsNullOrEmpty(instance.Name)) {
@@ -66,7 +66,7 @@
         if (!String.IsNullOrEmpty(descriptor.SolutionIdentifier)) {
           var solutionsArchiveName = GetResourceName(FileName + @"\.opt\.zip");
-          using (var solutionsZipFile = new ZipFile(GetType().Assembly.GetManifestResourceStream(solutionsArchiveName))) {
+          using (var solutionsZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(solutionsArchiveName))) {
             entry = solutionsZipFile.GetEntry(descriptor.SolutionIdentifier);
-            stream = solutionsZipFile.GetInputStream(entry);
+            stream = entry.Open();
             LoadSolution(stream, instance);
           }
@@ -130,5 +130,6 @@
           LoadSolution(stream, instance);
         }
-      } catch (Exception) {
+      }
+      catch (Exception) {
         // new stream necessary because first try already read from stream
         using (var stream = new FileStream(path, FileMode.Open)) {
@@ -149,11 +150,4 @@
       return "Embedded instance of plugin version " + Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyFileVersionAttribute), true).Cast<AssemblyFileVersionAttribute>().First().Version + ".";
     }
-
-    protected IEnumerable<string> GetZipContents(ZipInputStream zipFile) {
-      ZipEntry entry;
-      while ((entry = zipFile.GetNextEntry()) != null) {
-        yield return entry.Name;
-      }
-    }
     #endregion
   }
Index: stable/HeuristicLab.Services.Hive.JanitorService/3.3/HeuristicLab.Services.Hive.JanitorService-3.3.csproj
===================================================================
--- stable/HeuristicLab.Services.Hive.JanitorService/3.3/HeuristicLab.Services.Hive.JanitorService-3.3.csproj	(revision 11931)
+++ stable/HeuristicLab.Services.Hive.JanitorService/3.3/HeuristicLab.Services.Hive.JanitorService-3.3.csproj	(revision 11932)
@@ -141,9 +141,4 @@
     </EmbeddedResource>
   </ItemGroup>
-  <ItemGroup>
-    <Content Include="ICSharpCode.SharpZipLib License.txt">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <PropertyGroup>
Index: stable/HeuristicLab.Services.Hive.JanitorService/3.3/ICSharpCode.SharpZipLib License.txt
===================================================================
--- stable/HeuristicLab.Services.Hive.JanitorService/3.3/ICSharpCode.SharpZipLib License.txt	(revision 11931)
+++ 	(revision )
@@ -1,13 +1,0 @@
-#ziplib (SharpZipLib, formerly NZipLib) is a Zip, GZip, Tar and BZip2 library written entirely in C# for the .NET platform. It is implemented as an assembly (installable in the GAC), and thus can easily be incorporated into other projects (in any .NET language). The creator of #ziplib put it this way: "I've ported the zip library over to C# because I needed gzip/zip compression and I didn't want to use libzip.dll or something like this. I want all in pure C#."
-
-License
-
-The library is released under the GPL with the following exception:
-
-Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination.
-
-As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.
-
-Note: The exception is changed to reflect the latest GNU Classpath exception. Older versions of #ziplib did have another exception, but the new one is clearer and it doesn't break compatibility with the old one.
-
-Bottom line: In plain English this means you can use this library in commercial closed-source applications.
