Index: /branches/2994-AutoDiffForIntervals/HeuristicLab.Core/3.3/NamedItem.cs
===================================================================
--- /branches/2994-AutoDiffForIntervals/HeuristicLab.Core/3.3/NamedItem.cs	(revision 16942)
+++ /branches/2994-AutoDiffForIntervals/HeuristicLab.Core/3.3/NamedItem.cs	(revision 16943)
@@ -30,5 +30,5 @@
     [Storable]
     protected string name;
-    /// <inheritdoc/>
+    /// Gets and sets the name of the item.
     /// <remarks>Calls <see cref="OnNameChanging"/> and also <see cref="OnNameChanged"/> 
     /// eventually in the setter.</remarks>
@@ -74,5 +74,5 @@
     }
     /// <summary>
-    /// Initializes a new instance of <see cref="Variable"/> with name <c>Anonymous</c> 
+    /// Initializes a new instance of <see cref="NamedItem"/> with name and description <c>string.Empty</c> 
     /// and value <c>null</c>.
     /// </summary>
@@ -82,9 +82,7 @@
     }
     /// <summary>
-    /// Initializes a new instance of <see cref="Variable"/> with the specified <paramref name="name"/>
-    /// and the specified <paramref name="value"/>.
+    /// Initializes a new instance of <see cref="NamedItem"/> with the specified <paramref name="name"/>
     /// </summary>
     /// <param name="name">The name of the current instance.</param>
-    /// <param name="value">The value of the current instance.</param>
     protected NamedItem(string name) {
       if (name == null) this.name = string.Empty;
@@ -92,4 +90,7 @@
       description = string.Empty;
     }
+    /// <summary>
+    /// Initializes a new instance of <see cref="NamedItem"/> with the specified <paramref name="name"/> and <paramref name="description"/>.
+    /// </summary>
     protected NamedItem(string name, string description) {
       if (name == null) this.name = string.Empty;
@@ -100,5 +101,5 @@
 
     /// <summary>
-    /// Gets the string representation of the current instance in the format: <c>Name: [null|Value]</c>.
+    /// Gets the string representation of the current instance.
     /// </summary>
     /// <returns>The current instance as a string.</returns>
@@ -122,5 +123,5 @@
     /// Fires a new <c>NameChanged</c> event.
     /// </summary>
-    /// <remarks>Calls <see cref="ItemBase.OnChanged"/>.</remarks>
+    /// <remarks>Calls <see cref="Item.OnToStringChanged"/>.</remarks>
     protected virtual void OnNameChanged() {
       var handler = NameChanged;
@@ -133,5 +134,4 @@
     /// Fires a new <c>DescriptionChanged</c> event.
     /// </summary>
-    /// <remarks>Calls <see cref="ItemBase.OnChanged"/>.</remarks>
     protected virtual void OnDescriptionChanged() {
       var handler = DescriptionChanged;
Index: /branches/2994-AutoDiffForIntervals/HeuristicLab.Core/3.3/PersistenceContentManager.cs
===================================================================
--- /branches/2994-AutoDiffForIntervals/HeuristicLab.Core/3.3/PersistenceContentManager.cs	(revision 16942)
+++ /branches/2994-AutoDiffForIntervals/HeuristicLab.Core/3.3/PersistenceContentManager.cs	(revision 16943)
@@ -24,4 +24,5 @@
 using HeuristicLab.Persistence.Default.Xml;
 using HEAL.Attic;
+using System;
 
 namespace HeuristicLab.Core {
@@ -32,10 +33,14 @@
       // first try to load using the new persistence format
       var ser = new ProtoBufSerializer();
-      var o = (IStorableContent)ser.Deserialize(filename, out SerializationInfo info);
-      if (info.SerializedTypes != null) {
-        return o;
+      try {
+        return (IStorableContent)ser.Deserialize(filename, out SerializationInfo info);
+      } catch (Exception e) {
+        try {
+          // try old format if new format fails
+          return XmlParser.Deserialize<IStorableContent>(filename);
+        } catch (Exception e2) {
+          throw new AggregateException($"Cannot open file {filename}", e, e2);
+        }
       }
-      // try old format if new format fails
-      return XmlParser.Deserialize<IStorableContent>(filename);
     }
 
Index: /branches/2994-AutoDiffForIntervals/HeuristicLab.ExactOptimization/3.3/LinearProgramming/Algorithms/ProblemType.cs
===================================================================
--- /branches/2994-AutoDiffForIntervals/HeuristicLab.ExactOptimization/3.3/LinearProgramming/Algorithms/ProblemType.cs	(revision 16942)
+++ /branches/2994-AutoDiffForIntervals/HeuristicLab.ExactOptimization/3.3/LinearProgramming/Algorithms/ProblemType.cs	(revision 16943)
@@ -20,6 +20,9 @@
 #endregion
 
+using HEAL.Attic;
+
 namespace HeuristicLab.ExactOptimization.LinearProgramming {
 
+  [StorableType("F4D6C4AE-C222-4175-9D05-E13707D0EDDB")]
   public enum ProblemType {
     LinearProgramming,
Index: /branches/2994-AutoDiffForIntervals/HeuristicLab.ExactOptimization/3.3/LinearProgramming/Algorithms/ProtoWriteFormat.cs
===================================================================
--- /branches/2994-AutoDiffForIntervals/HeuristicLab.ExactOptimization/3.3/LinearProgramming/Algorithms/ProtoWriteFormat.cs	(revision 16942)
+++ /branches/2994-AutoDiffForIntervals/HeuristicLab.ExactOptimization/3.3/LinearProgramming/Algorithms/ProtoWriteFormat.cs	(revision 16943)
@@ -20,6 +20,9 @@
 #endregion
 
+using HEAL.Attic;
+
 namespace HeuristicLab.ExactOptimization.LinearProgramming {
 
+  [StorableType("BBFFAAAC-F9F6-40A9-BC6E-683257F03E2B")]
   public enum ProtoWriteFormat {
     ProtoText,
Index: /branches/2994-AutoDiffForIntervals/HeuristicLab.ExactOptimization/3.3/LinearProgramming/Algorithms/ResultStatus.cs
===================================================================
--- /branches/2994-AutoDiffForIntervals/HeuristicLab.ExactOptimization/3.3/LinearProgramming/Algorithms/ResultStatus.cs	(revision 16942)
+++ /branches/2994-AutoDiffForIntervals/HeuristicLab.ExactOptimization/3.3/LinearProgramming/Algorithms/ResultStatus.cs	(revision 16943)
@@ -1,4 +1,28 @@
-﻿namespace HeuristicLab.ExactOptimization.LinearProgramming {
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2018 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 HEAL.Attic;
+
+namespace HeuristicLab.ExactOptimization.LinearProgramming {
+
+  [StorableType("73192CE9-6D6B-4631-95BE-C15B8B5F9FE6")]
   public enum ResultStatus {
     Optimal,        // optimal.
Index: /branches/2994-AutoDiffForIntervals/HeuristicLab.ExactOptimization/3.3/LinearProgramming/Algorithms/SolverResponseStatus.cs
===================================================================
--- /branches/2994-AutoDiffForIntervals/HeuristicLab.ExactOptimization/3.3/LinearProgramming/Algorithms/SolverResponseStatus.cs	(revision 16942)
+++ /branches/2994-AutoDiffForIntervals/HeuristicLab.ExactOptimization/3.3/LinearProgramming/Algorithms/SolverResponseStatus.cs	(revision 16943)
@@ -20,8 +20,9 @@
 #endregion
 
-using Google.OrTools.LinearSolver;
+using HEAL.Attic;
 
 namespace HeuristicLab.ExactOptimization.LinearProgramming {
 
+  [StorableType("D6947706-E560-4D5C-8022-C6F1F20DCD8B")]
   public enum SolverResponseStatus {
     Optimal = 0,
Index: /branches/2994-AutoDiffForIntervals/HeuristicLab.ExactOptimization/3.3/LinearProgramming/Algorithms/Solvers/Base/IExternalLinearSolver.cs
===================================================================
--- /branches/2994-AutoDiffForIntervals/HeuristicLab.ExactOptimization/3.3/LinearProgramming/Algorithms/Solvers/Base/IExternalLinearSolver.cs	(revision 16942)
+++ /branches/2994-AutoDiffForIntervals/HeuristicLab.ExactOptimization/3.3/LinearProgramming/Algorithms/Solvers/Base/IExternalLinearSolver.cs	(revision 16943)
@@ -20,6 +20,9 @@
 #endregion
 
+using HEAL.Attic;
+
 namespace HeuristicLab.ExactOptimization.LinearProgramming {
 
+  [StorableType("5892CCCB-7D74-4748-B221-DA12C90B682B")]
   public interface IExternalLinearSolver : ILinearSolver {
     string LibraryName { get; set; }
Index: /branches/2994-AutoDiffForIntervals/HeuristicLab.ExactOptimization/3.3/LinearProgramming/Algorithms/Solvers/Base/IIncrementalLinearSolver.cs
===================================================================
--- /branches/2994-AutoDiffForIntervals/HeuristicLab.ExactOptimization/3.3/LinearProgramming/Algorithms/Solvers/Base/IIncrementalLinearSolver.cs	(revision 16942)
+++ /branches/2994-AutoDiffForIntervals/HeuristicLab.ExactOptimization/3.3/LinearProgramming/Algorithms/Solvers/Base/IIncrementalLinearSolver.cs	(revision 16943)
@@ -21,7 +21,9 @@
 
 using System;
+using HEAL.Attic;
 
 namespace HeuristicLab.ExactOptimization.LinearProgramming {
 
+  [StorableType("D9B54575-1F8A-4A09-9C62-7492C06535B0")]
   public interface IIncrementalLinearSolver : ILinearSolver {
     TimeSpan QualityUpdateInterval { get; set; }
Index: /branches/2994-AutoDiffForIntervals/HeuristicLab.ExactOptimization/3.3/LinearProgramming/Algorithms/Solvers/Base/ILinearSolver.cs
===================================================================
--- /branches/2994-AutoDiffForIntervals/HeuristicLab.ExactOptimization/3.3/LinearProgramming/Algorithms/Solvers/Base/ILinearSolver.cs	(revision 16942)
+++ /branches/2994-AutoDiffForIntervals/HeuristicLab.ExactOptimization/3.3/LinearProgramming/Algorithms/Solvers/Base/ILinearSolver.cs	(revision 16943)
@@ -22,4 +22,5 @@
 using System;
 using System.Threading;
+using HEAL.Attic;
 using HeuristicLab.Core;
 using HeuristicLab.Optimization;
@@ -27,4 +28,5 @@
 namespace HeuristicLab.ExactOptimization.LinearProgramming {
 
+  [StorableType("D647D4F0-A0F5-4091-8F12-54E59CEF12E4")]
   public interface ILinearSolver : IParameterizedNamedItem {
     double DualTolerance { get; set; }
Index: /branches/2994-AutoDiffForIntervals/HeuristicLab.ExactOptimization/3.3/LinearProgramming/Problems/ILinearProblemDefinition.cs
===================================================================
--- /branches/2994-AutoDiffForIntervals/HeuristicLab.ExactOptimization/3.3/LinearProgramming/Problems/ILinearProblemDefinition.cs	(revision 16942)
+++ /branches/2994-AutoDiffForIntervals/HeuristicLab.ExactOptimization/3.3/LinearProgramming/Problems/ILinearProblemDefinition.cs	(revision 16943)
@@ -21,4 +21,5 @@
 
 using Google.OrTools.LinearSolver;
+using HEAL.Attic;
 using HeuristicLab.Core;
 using HeuristicLab.Optimization;
@@ -26,4 +27,5 @@
 namespace HeuristicLab.ExactOptimization.LinearProgramming {
 
+  [StorableType("4C6CEA85-0197-4A92-A969-C2F964F56388")]
   public interface ILinearProblemDefinition : IItem {
 
Index: /branches/2994-AutoDiffForIntervals/HeuristicLab.ExtLibs/HeuristicLab.OrTools/7.0.0/HeuristicLab.OrTools-7.0.0/Google.OrTools_version.txt
===================================================================
--- /branches/2994-AutoDiffForIntervals/HeuristicLab.ExtLibs/HeuristicLab.OrTools/7.0.0/HeuristicLab.OrTools-7.0.0/Google.OrTools_version.txt	(revision 16942)
+++ /branches/2994-AutoDiffForIntervals/HeuristicLab.ExtLibs/HeuristicLab.OrTools/7.0.0/HeuristicLab.OrTools-7.0.0/Google.OrTools_version.txt	(revision 16943)
@@ -3,4 +3,4 @@
 GitHub [2]. The library was compiled with Visual Studio 2017 for x64.
 
-[1]: https://github.com/ddorfmeister/or-tools/commit/e13f4bb73f09966332206204d443747e3762555f
+[1]: https://github.com/ddorfmeister/or-tools/commit/eb3d72b09219e1aef48182b77cf26b153e9fc9a1
 [2]: https://github.com/google/or-tools
Index: /branches/2994-AutoDiffForIntervals/HeuristicLab.ExtLibs/HeuristicLab.OrTools/7.0.0/HeuristicLab.OrTools-7.0.0/Plugin.cs.frame
===================================================================
--- /branches/2994-AutoDiffForIntervals/HeuristicLab.ExtLibs/HeuristicLab.OrTools/7.0.0/HeuristicLab.OrTools-7.0.0/Plugin.cs.frame	(revision 16942)
+++ /branches/2994-AutoDiffForIntervals/HeuristicLab.ExtLibs/HeuristicLab.OrTools/7.0.0/HeuristicLab.OrTools-7.0.0/Plugin.cs.frame	(revision 16943)
@@ -38,7 +38,10 @@
   public class HeuristicLabOrToolsPlugin : PluginBase {
 
-    public override void OnUnload() {
-      // HACK: free handle to native DLL used temporarily by the Hive Slave
-      // should be solved for all native DLLs used by the Hive Slave
+    ~HeuristicLabOrToolsPlugin() {
+      // HACK: Free handle to native DLL used temporarily by the Hive Slave.
+      // Finalizer must be used because generated finalizers used in
+      // HeuristicLab.ExactOptimization that call destructors in native DLL
+      // are called after HeuristicLabOrToolsPlugin.OnUnload().
+      // This should be solved for all native DLLs used by the Hive Slave.
       var dllDir = new FileInfo(GetType().Assembly.Location).Directory;
       if (dllDir == null || !dllDir.FullName.Contains(Path.DirectorySeparatorChar + "PluginTemp" + Path.DirectorySeparatorChar))
