@@ -47,7 +47,7 @@ public Project(Autobuilder builder, string path) : base(builder, path)
4747
4848 var root = projFile . DocumentElement ;
4949
50- if ( root . Name == "Project" )
50+ if ( root ? . Name == "Project" )
5151 {
5252 if ( root . HasAttribute ( "Sdk" ) )
5353 {
@@ -77,10 +77,17 @@ public Project(Autobuilder builder, string path) : base(builder, path)
7777 // `<ProjectFile Include="X"/>` and `<ProjectFiles Include="X"/>` is valid
7878 var mgr = new XmlNamespaceManager ( projFile . NameTable ) ;
7979 mgr . AddNamespace ( "msbuild" , "http://schemas.microsoft.com/developer/msbuild/2003" ) ;
80- var projectFileIncludes = root . SelectNodes ( "//msbuild:Project/msbuild:ItemGroup/msbuild:ProjectFile/@Include" , mgr ) . OfType < XmlNode > ( ) ;
81- var projectFilesIncludes = root . SelectNodes ( "//msbuild:Project/msbuild:ItemGroup/msbuild:ProjectFiles/@Include" , mgr ) . OfType < XmlNode > ( ) ;
80+ var projectFileIncludes = root . SelectNodes ( "//msbuild:Project/msbuild:ItemGroup/msbuild:ProjectFile/@Include" , mgr )
81+ ? . OfType < XmlNode > ( ) ?? Array . Empty < XmlNode > ( ) ;
82+ var projectFilesIncludes = root . SelectNodes ( "//msbuild:Project/msbuild:ItemGroup/msbuild:ProjectFiles/@Include" , mgr )
83+ ? . OfType < XmlNode > ( ) ?? Array . Empty < XmlNode > ( ) ;
8284 foreach ( var include in projectFileIncludes . Concat ( projectFilesIncludes ) )
8385 {
86+ if ( include ? . Value is null )
87+ {
88+ continue ;
89+ }
90+
8491 var includePath = builder . Actions . PathCombine ( include . Value . Split ( '\\ ' , StringSplitOptions . RemoveEmptyEntries ) ) ;
8592 ret . Add ( new Project ( builder , builder . Actions . PathCombine ( DirectoryName , includePath ) ) ) ;
8693 }
0 commit comments