Author: mhutch
Date: 2007-12-31 16:31:18 -0500 (Mon, 31 Dec 2007)
New Revision: 92076

Modified:
   trunk/monodevelop/main/src/core/MonoDevelop.Projects/ChangeLog
   
trunk/monodevelop/main/src/core/MonoDevelop.Projects/MonoDevelop.Projects/DotNetProject.cs
Log:
* MonoDevelop.Projects/DotNetProject.cs: Make sure that ClrVersion is
  something that the language binding can handle. Fixes some
  compilation problems with VB.NET.

Modified: trunk/monodevelop/main/src/core/MonoDevelop.Projects/ChangeLog
===================================================================
--- trunk/monodevelop/main/src/core/MonoDevelop.Projects/ChangeLog      
2007-12-31 20:49:12 UTC (rev 92075)
+++ trunk/monodevelop/main/src/core/MonoDevelop.Projects/ChangeLog      
2007-12-31 21:31:18 UTC (rev 92076)
@@ -1,3 +1,9 @@
+2007-12-31  Michael Hutchinson <[EMAIL PROTECTED]> 
+
+       * MonoDevelop.Projects/DotNetProject.cs: Make sure that ClrVersion is
+         something that the language binding can handle. Fixes some compilation
+         problems with VB.NET.
+
 2007-12-19  Lluis Sanchez Gual <[EMAIL PROTECTED]> 
 
        * MonoDevelop.Projects/ProjectConvertTool.cs: Improve documentation. Add

Modified: 
trunk/monodevelop/main/src/core/MonoDevelop.Projects/MonoDevelop.Projects/DotNetProject.cs
===================================================================
--- 
trunk/monodevelop/main/src/core/MonoDevelop.Projects/MonoDevelop.Projects/DotNetProject.cs
  2007-12-31 20:49:12 UTC (rev 92075)
+++ 
trunk/monodevelop/main/src/core/MonoDevelop.Projects/MonoDevelop.Projects/DotNetProject.cs
  2007-12-31 21:31:18 UTC (rev 92076)
@@ -42,7 +42,7 @@
        {
                [ItemProperty]
                string language;
-               ClrVersion clrVersion = ClrVersion.Net_1_1;
+               ClrVersion clrVersion = ClrVersion.Default;
                bool usePartialTypes = true;
                
                IDotNetLanguageBinding languageBinding;
@@ -72,12 +72,15 @@
                [ItemProperty ("clr-version")]
                public ClrVersion ClrVersion {
                        get {
-                               return (clrVersion == ClrVersion.Default) ? 
ClrVersion.Net_1_1 : clrVersion;
+                               if (clrVersion == ClrVersion.Default)
+                                       ClrVersion = ClrVersion.Default;
+                               return clrVersion;
                        }
                        set {
-                               if (clrVersion == value)
+                               ClrVersion validValue = GetValidClrVersion 
(value);
+                               if (clrVersion == validValue || validValue == 
ClrVersion.Default)
                                        return;
-                               clrVersion = value;
+                               clrVersion = validValue;
                                
                                // Propagate the clr version to configurations. 
We don't support
                                // per-project clr versions right now, but we 
might support it
@@ -89,6 +92,29 @@
                        }
                }
                
+               //if possible, find a ClrVersion that the language binding can 
handle
+               ClrVersion GetValidClrVersion (ClrVersion suggestion)
+               {
+                       if (languageBinding == null)
+                               return ClrVersion.Default;
+                       
+                       if (suggestion == ClrVersion.Default)
+                               suggestion = ClrVersion.Net_1_1;
+                       
+                       if (languageBinding != null) {
+                               ClrVersion[] versions = 
languageBinding.GetSupportedClrVersions ();
+                               if (versions != null && versions.Length > 0) {
+                                       foreach (ClrVersion v in versions) {
+                                               if (v == suggestion) {
+                                                       return suggestion;
+                                               }
+                                       }
+                                       return versions[0];
+                               }
+                       }
+                       return suggestion;
+               }
+               
                [ItemProperty (DefaultValue=true)]
                public bool UsePartialTypes {
                        get { return usePartialTypes; }

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to