Index: /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/AvailablePluginsView.cs
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/AvailablePluginsView.cs	(revision 4481)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/AvailablePluginsView.cs	(revision 4482)
@@ -311,5 +311,5 @@
     }
 
-    private bool IsNewerThan(IPluginDescription plugin1, IPluginDescription plugin2) {
+    private static bool IsNewerThan(IPluginDescription plugin1, IPluginDescription plugin2) {
       // newer: build version is higher, or if build version is the same revision is higher
       if (plugin1.Version.Build < plugin2.Version.Build) return false;
Index: /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/BasicUpdateView.cs
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/BasicUpdateView.cs	(revision 4481)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/BasicUpdateView.cs	(revision 4482)
@@ -87,5 +87,5 @@
     }
 
-    private bool IsNewerThan(IPluginDescription plugin1, IPluginDescription plugin2) {
+    private static bool IsNewerThan(IPluginDescription plugin1, IPluginDescription plugin2) {
       // newer: build version is higher, or if build version is the same revision is higher
       if (plugin1.Version.Build < plugin2.Version.Build) return false;
Index: /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/PluginDescription.cs
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/PluginDescription.cs	(revision 4481)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/PluginDescription.cs	(revision 4482)
@@ -69,9 +69,4 @@
     }
 
-    [Obsolete]
-    public DateTime BuildDate {
-      get { throw new NotImplementedException(); }
-    }
-
     /// <summary>
     /// Gets an enumerable of dependencies of the plugin
Index: /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/EditProductsView.cs
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/EditProductsView.cs	(revision 4481)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/EditProductsView.cs	(revision 4482)
@@ -257,5 +257,4 @@
 
         // populate plugins list view
-        ListViewItem activeItem = (ListViewItem)productsListView.SelectedItems[0];
         pluginListView.SuppressItemCheckedEvents = true;
         foreach (var plugin in plugins.OfType<IPluginDescription>()) {
Index: /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManager.cs
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManager.cs	(revision 4481)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManager.cs	(revision 4482)
@@ -179,28 +179,28 @@
       using (ZipInputStream s = new ZipInputStream(new MemoryStream(zippedPackage))) {
         ZipEntry theEntry;
-        string tmpEntry = String.Empty;
         while ((theEntry = s.GetNextEntry()) != null) {
           string directoryName = pluginDir;
           string fileName = Path.GetFileName(theEntry.Name);
           // create directory 
-          if (directoryName != "") {
+          if (!string.IsNullOrEmpty(directoryName)) {
             Directory.CreateDirectory(directoryName);
           }
-          if (fileName != String.Empty) {
+          if (!string.IsNullOrEmpty(fileName)) {
             string fullPath = Path.Combine(directoryName, fileName);
             string fullDirPath = Path.GetDirectoryName(fullPath);
             if (!Directory.Exists(fullDirPath)) Directory.CreateDirectory(fullDirPath);
-            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 (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;
+                }
               }
+              streamWriter.Close();
             }
-            streamWriter.Close();
           }
         }
Index: unk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerConsole.cs
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerConsole.cs	(revision 4481)
+++ 	(revision )
@@ -1,111 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-using System.Collections.Generic;
-using HeuristicLab.PluginInfrastructure.Advanced.DeploymentService;
-using HeuristicLab.PluginInfrastructure.Manager;
-
-
-namespace HeuristicLab.PluginInfrastructure.Advanced {
-  internal class InstallationManagerConsole {
-    private InstallationManager installManager;
-    private string connectionString;
-    public InstallationManagerConsole(string pluginDir) {
-
-      // get default connection string
-      using (var client = new UpdateClient()) {
-        connectionString = client.Endpoint.Address.ToString();
-      }
-
-      this.installManager = new InstallationManager(pluginDir);
-      installManager.PreInstallPlugin += new EventHandler<PluginInfrastructureCancelEventArgs>(installManager_PreInstallPlugin);
-      installManager.PreRemovePlugin += new EventHandler<PluginInfrastructureCancelEventArgs>(installManager_PreRemovePlugin);
-      installManager.PreUpdatePlugin += new EventHandler<PluginInfrastructureCancelEventArgs>(installManager_PreUpdatePlugin);
-      installManager.PluginInstalled += new EventHandler<PluginInfrastructureEventArgs>(installManager_PluginInstalled);
-      installManager.PluginRemoved += new EventHandler<PluginInfrastructureEventArgs>(installManager_PluginRemoved);
-      installManager.PluginUpdated += new EventHandler<PluginInfrastructureEventArgs>(installManager_PluginUpdated);
-    }
-
-    void installManager_PreUpdatePlugin(object sender, PluginInfrastructureCancelEventArgs e) {
-      Console.WriteLine("Following plugins are updated:");
-      foreach (var info in e.Plugins) {
-        Console.WriteLine(e);
-      }
-      if (GetUserConfirmation()) e.Cancel = false;
-      else e.Cancel = true;
-      return;
-    }
-
-    void installManager_PluginUpdated(object sender, PluginInfrastructureEventArgs e) {
-      foreach (var info in (IEnumerable<IPluginDescription>)e.Entity)
-        Console.WriteLine("Updated: {0}", info.Name);
-    }
-
-    void installManager_PreRemovePlugin(object sender, PluginInfrastructureCancelEventArgs e) {
-      Console.WriteLine("Following files are deleted:");
-      foreach (var plugin in e.Plugins) {
-        foreach (var file in plugin.Files)
-          Console.WriteLine(file);
-      }
-      if (GetUserConfirmation()) e.Cancel = false;
-      else e.Cancel = true;
-      return;
-    }
-
-    void installManager_PluginRemoved(object sender, PluginInfrastructureEventArgs e) {
-      foreach (string fileName in (IEnumerable<string>)e.Entity)
-        Console.WriteLine("Deleted: {0}", fileName);
-    }
-
-    void installManager_PreInstallPlugin(object sender, PluginInfrastructureCancelEventArgs e) {
-
-    }
-
-    void installManager_PluginInstalled(object sender, PluginInfrastructureEventArgs e) {
-
-    }
-
-    private static bool GetUserConfirmation() {
-      Console.Write("Are you sure? (Y/n)");
-      string input = Console.ReadLine().ToUpperInvariant();
-      if (string.IsNullOrEmpty(input) || input == "Y") return true;
-      else return false;
-    }
-
-    public void Show(IEnumerable<string> pluginNames) {
-      //foreach (string pluginName in pluginNames)
-      //  Console.WriteLine(installManager.GetInformation(pluginName));
-    }
-
-    public void Install(IEnumerable<string> pluginNames) {
-      //installManager.Install(connectionString, pluginNames);
-    }
-
-    public void Remove(IEnumerable<string> pluginNames) {
-      // installManager.Remove(pluginNames);
-    }
-
-    public void Update(IEnumerable<string> pluginNames) {
-      // installManager.Update(connectionString, pluginNames);
-    }
-  }
-}
Index: /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerException.cs
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerException.cs	(revision 4481)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerException.cs	(revision 4482)
@@ -29,5 +29,5 @@
     public InstallationManagerException(string msg) : base(msg) { }
     public InstallationManagerException(string msg, Exception e) : base(msg, e) { }
-    public InstallationManagerException(SerializationInfo info, StreamingContext context) : base(info, context) { }
+    protected InstallationManagerException(SerializationInfo info, StreamingContext context) : base(info, context) { }
   }
 }
Index: /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerForm.cs
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerForm.cs	(revision 4481)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerForm.cs	(revision 4482)
@@ -32,5 +32,4 @@
   internal partial class InstallationManagerForm : Form, IStatusView {
     private InstallationManager installationManager;
-    private PluginManager pluginManager;
     private string pluginDir;
 
@@ -40,6 +39,4 @@
       FileVersionInfo pluginInfrastructureVersion = FileVersionInfo.GetVersionInfo(GetType().Assembly.Location);
       Text = "HeuristicLab Plugin Manager " + pluginInfrastructureVersion.FileVersion;
-
-      this.pluginManager = pluginManager;
 
       pluginManager.PluginLoaded += pluginManager_PluginLoaded;
@@ -142,5 +139,7 @@
     #region button events
     private void connectionSettingsToolStripMenuItem_Click(object sender, EventArgs e) {
-      new ConnectionSetupView().ShowDialog(this);
+      using (var conSetupView = new ConnectionSetupView()) {
+        conSetupView.ShowDialog(this);
+      }
     }
     private void tabControl_SelectedIndexChanged(object sender, EventArgs e) {
@@ -157,5 +156,7 @@
         }
       }
-      return (new ConfirmationDialog("Confirm Delete", "Do you want to delete following files?", strBuilder.ToString())).ShowDialog(this) == DialogResult.OK;
+      using (var confirmationDialog = new ConfirmationDialog("Confirm Delete", "Do you want to delete following files?", strBuilder.ToString())) {
+        return (confirmationDialog.ShowDialog(this)) == DialogResult.OK;
+      }
     }
 
@@ -165,5 +166,7 @@
         strBuilder.AppendLine(plugin.ToString());
       }
-      return (new ConfirmationDialog("Confirm Update", "Do you want to update following plugins?", strBuilder.ToString())).ShowDialog(this) == DialogResult.OK;
+      using (var confirmationDialog = new ConfirmationDialog("Confirm Update", "Do you want to update following plugins?", strBuilder.ToString())) {
+        return (confirmationDialog.ShowDialog(this)) == DialogResult.OK;
+      }
     }
 
@@ -171,7 +174,8 @@
       foreach (var plugin in plugins) {
         if (!string.IsNullOrEmpty(plugin.LicenseText)) {
-          var licenseConfirmationBox = new LicenseConfirmationDialog(plugin);
-          if (licenseConfirmationBox.ShowDialog(this) != DialogResult.OK)
-            return false;
+          using (var licenseConfirmationBox = new LicenseConfirmationDialog(plugin)) {
+            if (licenseConfirmationBox.ShowDialog(this) != DialogResult.OK)
+              return false;
+          }
         }
       }
@@ -207,5 +211,5 @@
 
     public void ShowProgressIndicator(double percentProgress) {
-      if (percentProgress < 0.0 || percentProgress > 1.0) throw new ArgumentException();
+      if (percentProgress < 0.0 || percentProgress > 1.0) throw new ArgumentException("percentProgress");
       toolStripProgressBar.Visible = true;
       toolStripProgressBar.Style = ProgressBarStyle.Continuous;
@@ -224,5 +228,5 @@
 
     public void ShowMessage(string message) {
-      if (toolStripStatusLabel.Text == string.Empty)
+      if (string.IsNullOrEmpty(toolStripStatusLabel.Text))
         toolStripStatusLabel.Text = message;
       else
Index: /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstalledPluginsView.cs
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstalledPluginsView.cs	(revision 4481)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstalledPluginsView.cs	(revision 4482)
@@ -120,5 +120,5 @@
     }
 
-    private bool IsNewerThan(IPluginDescription plugin1, IPluginDescription plugin2) {
+    private static bool IsNewerThan(IPluginDescription plugin1, IPluginDescription plugin2) {
       // newer: build version is higher, or if build version is the same revision is higher
       if (plugin1.Version.Build < plugin2.Version.Build) return false;
@@ -153,5 +153,5 @@
     }
 
-    private ListViewItem CreateListViewItem(PluginDescription plugin) {
+    private static ListViewItem CreateListViewItem(PluginDescription plugin) {
       ListViewItem item = new ListViewItem(new string[] { plugin.Name, plugin.Version.ToString(), plugin.Description });
       item.Tag = plugin;
@@ -190,5 +190,4 @@
         List<ListViewItem> modifiedItems = new List<ListViewItem>();
         foreach (ListViewItem item in localPluginsListView.SelectedItems) {
-          var plugin = (IPluginDescription)item.Tag;
           modifiedItems.Add(item);
         }
Index: /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/MultiSelectListView.cs
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/MultiSelectListView.cs	(revision 4481)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/MultiSelectListView.cs	(revision 4482)
@@ -22,4 +22,5 @@
 using System.Linq;
 using System.Windows.Forms;
+using System;
 
 namespace HeuristicLab.PluginInfrastructure.Advanced {
@@ -43,4 +44,5 @@
     // and then one the item whose checkbox was clicked
     protected override void OnItemCheck(ItemCheckEventArgs ice) {
+      if (ice == null) throw new ArgumentNullException("ice");
       // don't change the checked state of items that were not clicked directly
       if (inhibitAutoCheck) {
Index: /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/UploadPluginsView.cs
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/UploadPluginsView.cs	(revision 4481)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Advanced/UploadPluginsView.cs	(revision 4482)
@@ -260,5 +260,5 @@
     }
 
-    private byte[] CreateZipPackage(IPluginDescription plugin) {
+    private static byte[] CreateZipPackage(IPluginDescription plugin) {
       using (MemoryStream stream = new MemoryStream()) {
         ZipFile zipFile = new ZipFile(stream);
Index: unk/sources/HeuristicLab.PluginInfrastructure/3.3/Attributes/AssemblyBuildDateAttribute.cs
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Attributes/AssemblyBuildDateAttribute.cs	(revision 4481)
+++ 	(revision )
@@ -1,52 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-
-namespace HeuristicLab.PluginInfrastructure {
-  /// <summary>
-  /// Build date attribute. Allows to declare the build date of assemblies.
-  /// </summary>
-  [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = false)]
-  public sealed class AssemblyBuildDateAttribute : Attribute {
-    private DateTime buildDate;
-    /// <summary>
-    /// Gets the build date.
-    /// </summary>
-    public DateTime BuildDate {
-      get { return buildDate; }
-    }
-
-    /// <summary>
-    /// Initializes a new instance of <see cref="AssemblyBuildDateAttribute"/> with the given 
-    /// <paramref name="timeStamp"/> as build date.
-    /// </summary>
-    /// <exception cref="FormatException">Thrown when the time stamp could not be parsed as build date.</exception>
-    /// <param name="buildDate">The build date of the assembly.</param>
-    [Obsolete]
-    public AssemblyBuildDateAttribute(string buildDate)
-      : base() {
-      if (!DateTime.TryParse(buildDate, out this.buildDate)) {
-        throw new FormatException("Can't parse AssemblyBuildDate " + buildDate);
-      }
-    }
-  }
-}
Index: /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Attributes/PluginAttribute.cs
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Attributes/PluginAttribute.cs	(revision 4481)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Attributes/PluginAttribute.cs	(revision 4482)
@@ -53,7 +53,4 @@
     }
 
-    [Obsolete]
-    public PluginAttribute(string name) : this(name, "0.0.0.0") { }
-
     /// <summary>
     /// Initializes a new instance of <see cref="PluginAttribute"/>.
@@ -74,5 +71,5 @@
       if (string.IsNullOrEmpty(name)) throw new ArgumentException("Plugin name is null or empty.");
       if (description == null) throw new ArgumentNullException("description");
-      if (string.IsNullOrEmpty(version)) new ArgumentException("Version string is null or empty.");
+      if (string.IsNullOrEmpty(version)) throw new ArgumentException("Version string is null or empty.");
       this.name = name;
       this.description = description;
Index: /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Attributes/PluginDependencyAttribute.cs
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Attributes/PluginDependencyAttribute.cs	(revision 4481)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Attributes/PluginDependencyAttribute.cs	(revision 4482)
@@ -46,13 +46,4 @@
 
     /// <summary>
-    /// Initializes a new instance of <see cref="PluginDependencyAttribute"/>.
-    /// <param name="dependency">The name of the plugin that is needed to load a plugin.</param>
-    /// </summary>
-    [Obsolete]
-    public PluginDependencyAttribute(string dependency)
-      : this(dependency, "0.0.0.0") {
-    }
-
-    /// <summary>
     /// Initializes a new instance of <see cref="PluginDependencyAttribute" />.
     /// </summary>
Index: /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/BaseClasses/PluginBase.cs
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/BaseClasses/PluginBase.cs	(revision 4481)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/BaseClasses/PluginBase.cs	(revision 4482)
@@ -29,5 +29,5 @@
     /// Initializes a new instance of <see cref="PluginBase"/>.
     /// </summary>
-    public PluginBase() { }
+    protected PluginBase() { }
 
     private PluginAttribute PluginAttribute {
Index: /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/DefaultApplicationManager.cs
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/DefaultApplicationManager.cs	(revision 4481)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/DefaultApplicationManager.cs	(revision 4482)
@@ -310,4 +310,5 @@
     /// <returns>The description of the plugin that declares the given type or null if the type has not been declared by a known plugin.</returns>
     public IPluginDescription GetDeclaringPlugin(Type type) {
+      if (type == null) throw new ArgumentNullException("type");
       foreach (PluginDescription info in Plugins) {
         if (info.AssemblyLocations.Contains(Path.GetFullPath(type.Assembly.Location))) return info;
Index: /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/ErrorHandling/ErrorHandling.cs
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/ErrorHandling/ErrorHandling.cs	(revision 4481)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/ErrorHandling/ErrorHandling.cs	(revision 4482)
@@ -57,4 +57,5 @@
     }
     public static void ShowErrorDialog(Control owner, string message, Exception exception) {
+      if (owner == null) throw new ArgumentNullException("owner");
       if (owner.InvokeRequired) {
         owner.Invoke(new Action<Control, string, Exception>(ShowErrorDialog), owner, message, exception);
Index: /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/HeuristicLab.PluginInfrastructure-3.3.csproj
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/HeuristicLab.PluginInfrastructure-3.3.csproj	(revision 4481)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/HeuristicLab.PluginInfrastructure-3.3.csproj	(revision 4482)
@@ -178,5 +178,4 @@
     <Compile Include="Advanced\DeploymentService\DeploymentService.cs" />
     <Compile Include="Advanced\DeploymentService\UpdateClientFactory.cs" />
-    <Compile Include="Advanced\InstallationManagerConsole.cs" />
     <Compile Include="Advanced\InstallationManager.cs" />
     <Compile Include="Advanced\InstallationManagerForm.cs">
@@ -212,5 +211,4 @@
     </Compile>
     <Compile Include="Attributes\ApplicationAttribute.cs" />
-    <Compile Include="Attributes\AssemblyBuildDateAttribute.cs" />
     <Compile Include="Attributes\ContactInformationAttribute.cs" />
     <Compile Include="Attributes\PluginAttribute.cs" />
Index: /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Interfaces/IPluginDescription.cs
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Interfaces/IPluginDescription.cs	(revision 4481)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Interfaces/IPluginDescription.cs	(revision 4482)
@@ -41,9 +41,4 @@
     string Description { get; }
     /// <summary>
-    /// Gets the build date of the plugin.
-    /// </summary>
-    [Obsolete]
-    DateTime BuildDate { get; }
-    /// <summary>
     /// Gets the dependencies of the plugin.
     /// </summary>
Index: /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/LightweightApplicationManager.cs
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/LightweightApplicationManager.cs	(revision 4481)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/LightweightApplicationManager.cs	(revision 4482)
@@ -33,4 +33,12 @@
   /// </summary>
   internal sealed class LightweightApplicationManager : IApplicationManager {
+    internal LightweightApplicationManager() {
+      AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
+    }
+
+    Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args) {
+      return null;
+    }
+
 
     #region IApplicationManager Members
@@ -102,8 +110,18 @@
     /// <returns>Enumerable of the discovered types.</returns>
     private static IEnumerable<Type> GetTypes(Type type, Assembly assembly, bool onlyInstantiable) {
-      return from t in assembly.GetTypes()
-             where CheckTypeCompatibility(type, t)
-             where onlyInstantiable == false || (!t.IsAbstract && !t.IsInterface && !t.HasElementType)
-             select BuildType(t, type);
+      try {
+        var assemblyTypes = assembly.GetTypes();
+
+        return from t in assemblyTypes
+               where CheckTypeCompatibility(type, t)
+               where onlyInstantiable == false || (!t.IsAbstract && !t.IsInterface && !t.HasElementType)
+               select BuildType(t, type);
+      }
+      catch (TypeLoadException) {
+        return Enumerable.Empty<Type>();
+      }
+      catch (ReflectionTypeLoadException) {
+        return Enumerable.Empty<Type>();
+      }
     }
 
Index: /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Manager/PluginDescription.cs
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Manager/PluginDescription.cs	(revision 4481)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Manager/PluginDescription.cs	(revision 4482)
@@ -58,14 +58,4 @@
       internal set { version = value; }
     }
-    [Obsolete]
-    private DateTime buildDate;
-    /// <summary>
-    /// Gets the build date of the plugin.
-    /// </summary>
-    [Obsolete]
-    public DateTime BuildDate {
-      get { return buildDate; }
-      internal set { buildDate = value; }
-    }
 
     private string contactName;
Index: /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Manager/PluginManager.cs
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Manager/PluginManager.cs	(revision 4481)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Manager/PluginManager.cs	(revision 4482)
@@ -24,4 +24,5 @@
 using System.Linq;
 using System.Reflection;
+using System.Security.Permissions;
 
 namespace HeuristicLab.PluginInfrastructure.Manager {
@@ -204,4 +205,5 @@
     /// </summary>
     /// <returns><c>null</c>.</returns>
+    [SecurityPermission(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.Infrastructure)]
     public override object InitializeLifetimeService() {
       return null;
Index: /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Manager/PluginValidator.cs
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Manager/PluginValidator.cs	(revision 4481)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Manager/PluginValidator.cs	(revision 4482)
@@ -301,5 +301,5 @@
     }
 
-    private string ReadLicenseFiles(IEnumerable<PluginFile> pluginFiles) {
+    private static string ReadLicenseFiles(IEnumerable<PluginFile> pluginFiles) {
       // combine the contents of all plugin files 
       var licenseFiles = from file in pluginFiles
@@ -432,5 +432,5 @@
     /// <param name="requested">The requested version that must be matched.</param>
     /// <returns></returns>
-    private bool IsCompatiblePluginVersion(Version available, Version requested) {
+    private static bool IsCompatiblePluginVersion(Version available, Version requested) {
       // this condition must be removed after all plugins have been updated to declare plugin and dependency versions
       if (
Index: /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Sandboxing/SandboxManager.cs
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Sandboxing/SandboxManager.cs	(revision 4481)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Sandboxing/SandboxManager.cs	(revision 4482)
@@ -32,4 +32,7 @@
 namespace HeuristicLab.PluginInfrastructure.Sandboxing {
   public class SandboxManager {
+
+    // static class
+    private SandboxManager() { }
 
     private static StrongName CreateStrongName(Assembly assembly) {
Index: /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Starter/AboutDialog.cs
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Starter/AboutDialog.cs	(revision 4481)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Starter/AboutDialog.cs	(revision 4482)
@@ -40,5 +40,5 @@
       var curAssembly = this.GetType().Assembly;
       productTextBox.Text = GetProduct(curAssembly);
-      versionTextBox.Text = GetVersion(curAssembly);
+      versionTextBox.Text = GetVersion();
       copyrightTextBox.Text = GetCopyright(curAssembly);
       imageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.Plugin);
@@ -79,5 +79,5 @@
     }
 
-    private string GetVersion(Assembly asm) {
+    private string GetVersion() {
       FileVersionInfo pluginInfrastructureVersion = FileVersionInfo.GetVersionInfo(GetType().Assembly.Location);
       return pluginInfrastructureVersion.FileVersion;
Index: /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Starter/SplashScreen.cs
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Starter/SplashScreen.cs	(revision 4481)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Starter/SplashScreen.cs	(revision 4482)
@@ -32,5 +32,4 @@
     private Timer fadeTimer;
     private int initialInterval;
-    private PluginManager manager;
 
     internal SplashScreen() {
@@ -41,5 +40,4 @@
       : this() {
       this.initialInterval = initialInterval;
-      this.manager = manager;
 
       manager.ApplicationStarted += new EventHandler<PluginInfrastructureEventArgs>(manager_ApplicationStarted);
Index: /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Starter/StarterForm.cs
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Starter/StarterForm.cs	(revision 4481)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Starter/StarterForm.cs	(revision 4482)
@@ -93,6 +93,7 @@
             try {
               Cursor = Cursors.AppStarting;
-              InstallationManagerForm form = new InstallationManagerForm(pluginManager);
-              form.ShowDialog(this);
+              using (InstallationManagerForm form = new InstallationManagerForm(pluginManager)) {
+                form.ShowDialog(this);
+              }
               UpdateApplicationsList();
             }
@@ -180,6 +181,7 @@
     private void aboutButton_Click(object sender, EventArgs e) {
       List<IPluginDescription> plugins = new List<IPluginDescription>(pluginManager.Plugins.OfType<IPluginDescription>());
-      var dialog = new AboutDialog(plugins);
-      dialog.ShowDialog();
+      using (var dialog = new AboutDialog(plugins)) {
+        dialog.ShowDialog();
+      }
     }
   }
