Index: /trunk/sources/HeuristicLab.PluginInfrastructure/HeuristicLab.PluginInfrastructure.csproj
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/HeuristicLab.PluginInfrastructure.csproj	(revision 2599)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/HeuristicLab.PluginInfrastructure.csproj	(revision 2600)
@@ -170,4 +170,10 @@
   </ItemGroup>
   <ItemGroup>
+    <Content Include="ICSharpCode.SharpZipLib License.txt">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="ICSharpCode.SharpZipLib.dll">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
     <Content Include="Resources\Details.gif" />
     <Content Include="Resources\HeuristicLab.ico" />
Index: /trunk/sources/HeuristicLab/Files.txt
===================================================================
--- /trunk/sources/HeuristicLab/Files.txt	(revision 2599)
+++ /trunk/sources/HeuristicLab/Files.txt	(revision 2600)
@@ -1,4 +1,7 @@
 ﻿; This line is skipped. DO NOT TOUCH THIS line!
 ; List of project directories and file names separated by ':' that are part of the installation
+
+HeuristicLab.PluginInfrastructure:ICSharpCode.SharpZipLib License.txt
+HeuristicLab.PluginInfrastructure:ICSharpCode.SharpZipLib.dll
 
 ALGLIB:ALGLIB.dll
Index: /trunk/sources/HeuristicLab/Program.cs
===================================================================
--- /trunk/sources/HeuristicLab/Program.cs	(revision 2599)
+++ /trunk/sources/HeuristicLab/Program.cs	(revision 2600)
@@ -21,15 +21,4 @@
 
 using System;
-using System.Collections.Generic;
-using System.Windows.Forms;
-using System.Xml;
-using System.Threading;
-using System.Text;
-using System.Linq;
-using HeuristicLab.PluginInfrastructure;
-using HeuristicLab.PluginInfrastructure.Advanced;
-using System.Runtime.InteropServices;
-using HeuristicLab.PluginInfrastructure.Starter;
-using System.IO;
 
 namespace HeuristicLab {
@@ -37,80 +26,5 @@
     [STAThread]
     static void Main(string[] args) {
-      if (args.Length == 0) {  // normal mode
-        try {
-          Application.EnableVisualStyles();
-          Application.SetCompatibleTextRenderingDefault(false);
-          Application.Run(new StarterForm());
-        }
-        catch (Exception ex) {
-          ShowErrorMessageBox(ex);
-        }
-
-      } else {
-        var cmd = args[0].ToUpperInvariant();
-        string pluginDir = Path.GetFullPath(Application.StartupPath);
-        switch (cmd) {
-          case "START": {
-              if (args.Length != 2) {
-                PrintUsage();
-              } else {
-                Application.EnableVisualStyles();
-                Application.SetCompatibleTextRenderingDefault(false);
-                Application.Run(new StarterForm(args[1]));
-              }
-              break;
-            }
-          case "SHOW": {
-              InstallationManagerConsole managerConsole = new InstallationManagerConsole(pluginDir);
-              managerConsole.Show(args.Skip(1));
-              break;
-            }
-          case "INSTALL": {
-              InstallationManagerConsole managerConsole = new InstallationManagerConsole(pluginDir);
-              managerConsole.Install(args.Skip(1));
-              break;
-            }
-          case "UPDATE": {
-              InstallationManagerConsole managerConsole = new InstallationManagerConsole(pluginDir);
-              managerConsole.Update(args.Skip(1));
-              break;
-            }
-          case "REMOVE": {
-              InstallationManagerConsole managerConsole = new InstallationManagerConsole(pluginDir);
-              managerConsole.Remove(args.Skip(1));
-              break;
-            }
-          default: PrintUsage(); break;
-        }
-      }
-    }
-
-    private static void PrintUsage() {
-      Console.WriteLine("Usage: HeuristicLab.exe <command> <args>");
-      Console.WriteLine("Commands:");
-      Console.WriteLine("\tstart <application name>");
-      Console.WriteLine("\tshow <plugin name(s)>");
-      Console.WriteLine("\tupdate <plugin name(s)>");
-      Console.WriteLine("\tremove <plugin name(s)>");
-      Console.WriteLine("\tinstall <plugin name(s)>");
-    }
-
-    private static void ShowErrorMessageBox(Exception ex) {
-      MessageBox.Show(null,
-        BuildErrorMessage(ex),
-        "Error - " + ex.GetType().Name,
-        MessageBoxButtons.OK,
-        MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly);
-    }
-
-    private static string BuildErrorMessage(Exception ex) {
-      StringBuilder sb = new StringBuilder();
-      sb.Append("Sorry, but something went wrong!\n\n" + ex.Message + "\n\n" + ex.StackTrace);
-
-      while (ex.InnerException != null) {
-        ex = ex.InnerException;
-        sb.Append("\n\n-----\n\n" + ex.Message + "\n\n" + ex.StackTrace);
-      }
-      return sb.ToString();
+      HeuristicLab.PluginInfrastructure.Main.Run(args);
     }
   }
