Merge pull request #704 from jgagnon/master
[mono.git] / mcs / class / Microsoft.Build / Microsoft.Build.Construction / ProjectImportElement.cs
index d5458d8cd274eb24ddb85428ccbdc0ceb658095a..889534839078d58fc3c076313d779c77cda0f646 100644 (file)
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
+using System;
 using System.Xml;
+using Microsoft.Build.Exceptions;
+
+
 namespace Microsoft.Build.Construction
 {
         [System.Diagnostics.DebuggerDisplayAttribute ("Project={Project} Condition={Condition}")]
@@ -43,7 +47,8 @@ namespace Microsoft.Build.Construction
                         ContainingProject = containingProject;
                 }
 
-                public string Project { get; set; }
+                string project;
+                public string Project { get { return project ?? String.Empty; } set { project = value; } }
 
                 internal override string XmlName {
                         get { return "Import"; }
@@ -54,6 +59,13 @@ namespace Microsoft.Build.Construction
                         SaveAttribute (writer, "Project", Project);
                         base.SaveValue (writer);
                 }
+                
+                internal override void LoadValue (XmlReader reader)
+                {
+                        if (string.IsNullOrWhiteSpace (Project))
+                                throw new InvalidProjectFileException (Location, null, "Project attribute is null or empty on an Import element");
+                        base.LoadValue (reader);
+                }
 
                 internal override void LoadAttribute (string name, string value)
                 {