private static IVsReferenceItems GetProjectReferences(IImmutableDictionary <string, IImmutableDictionary <string, string> > projectReferenceItems)
        {
            IVsReferenceItems referenceItems = GetReferences(projectReferenceItems);

            // compute project file full path property for each reference
            foreach (ReferenceItem item in referenceItems)
            {
                IVsReferenceProperty fullPathProperty = item.Properties.Item(ProjectReference.FullPathProperty);

                ((ReferenceProperties)item.Properties).Add(new ReferenceProperty
                {
                    Name  = ProjectFileFullPathProperty,
                    Value = fullPathProperty?.Value
                });
            }

            return(referenceItems);
        }
        private static IVsReferenceItems GetProjectReferences(
            IImmutableDictionary <string, IImmutableDictionary <string, string> > projectReferenceItems,
            UnconfiguredProject project)
        {
            IVsReferenceItems referenceItems = GetReferences(projectReferenceItems);

            // compute project file full path property for each reference
            foreach (ReferenceItem item in referenceItems)
            {
                IVsReferenceProperty definingProjectDirectory = item.Properties.Item(DefiningProjectDirectoryProperty);
                string projectFileFullPath = definingProjectDirectory != null
                    ? MakeRooted(definingProjectDirectory.Value, item.Name)
                    : project.MakeRooted(item.Name);

                ((ReferenceProperties)item.Properties).Add(new ReferenceProperty
                {
                    Name  = ProjectFileFullPathProperty,
                    Value = projectFileFullPath
                });
            }

            return(referenceItems);
        }