Index: trunk/sources/HeuristicLab.PluginInfrastructure/Attributes/AssemblyBuildDateAttribute.cs
===================================================================
--- trunk/sources/HeuristicLab.PluginInfrastructure/Attributes/AssemblyBuildDateAttribute.cs	(revision 2748)
+++ trunk/sources/HeuristicLab.PluginInfrastructure/Attributes/AssemblyBuildDateAttribute.cs	(revision 2750)
@@ -45,4 +45,5 @@
     /// <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() {
Index: trunk/sources/HeuristicLab.PluginInfrastructure/Attributes/PluginAttribute.cs
===================================================================
--- trunk/sources/HeuristicLab.PluginInfrastructure/Attributes/PluginAttribute.cs	(revision 2748)
+++ trunk/sources/HeuristicLab.PluginInfrastructure/Attributes/PluginAttribute.cs	(revision 2750)
@@ -47,22 +47,37 @@
     }
 
+    private Version version;
+    /// <summary>
+    /// Gets the version of the plugin.
+    /// </summary>
+    public Version Version {
+      get { return version; }
+    }
+
+    [Obsolete]
+    public PluginAttribute(string name) : this(name, "0.0.0.0") { }
+
     /// <summary>
     /// Initializes a new instance of <see cref="PluginAttribute"/>.
     /// <param name="name">Name of the plugin</param>
+    /// <param name="version">Version of the plugin</param>
     /// </summary>
-    public PluginAttribute(string name)
-      : this(name, string.Empty) {
+    public PluginAttribute(string name, string version)
+      : this(name, string.Empty, version) {
     }
 
     /// <summary>
     /// Initializes a new instance of <see cref="PluginAttribute"/>.
+    /// </summary>
     /// <param name="name">Name of the plugin</param>
     /// <param name="description">Description of the plugin</param>
-    /// </summary>
-    public PluginAttribute(string name, string description) {
+    /// <param name="version">Version of the plugin</param>
+    public PluginAttribute(string name, string description, string version) {
       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.");
       this.name = name;
       this.description = description;
+      this.version = new Version(version); // throws format exception if the version string can't be parsed
     }
   }
Index: trunk/sources/HeuristicLab.PluginInfrastructure/Attributes/PluginDependencyAttribute.cs
===================================================================
--- trunk/sources/HeuristicLab.PluginInfrastructure/Attributes/PluginDependencyAttribute.cs	(revision 2748)
+++ trunk/sources/HeuristicLab.PluginInfrastructure/Attributes/PluginDependencyAttribute.cs	(revision 2750)
@@ -39,11 +39,26 @@
     }
 
+    private Version version;
+    /// <summary>
+    /// Gets the version of the plugin dependency.
+    /// </summary>
+    public Version Version {
+      get { return version; }
+    }
+
     /// <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>
-    public PluginDependencyAttribute(string dependency) {
-      if (string.IsNullOrEmpty(dependency)) throw new ArgumentException("Dependency is null or empty.", "dependency");
+    [Obsolete]
+    public PluginDependencyAttribute(string dependency)
+      : this(dependency, "0.0.0.0") {
+    }
+
+    public PluginDependencyAttribute(string dependency, string version) {
+      if (string.IsNullOrEmpty(dependency)) throw new ArgumentException("Dependency name is null or empty.", "dependency");
+      if (string.IsNullOrEmpty(version)) throw new ArgumentException("Dependency version is null or empty.", "version");
       this.dependency = dependency;
+      this.version = new Version(version); // throws format exception if the version string can't be parsed
     }
   }
