public static XmlMSBuildProjectStore CreateInstance(Microsoft.Expression.Framework.Documents.DocumentReference documentReference, IServiceProvider serviceProvider)
        {
            if (documentReference == null)
            {
                throw new ArgumentNullException("documentReference");
            }
            if (serviceProvider == null)
            {
                throw new ArgumentNullException("serviceProvider");
            }
            if (!documentReference.IsValidPathFormat)
            {
                throw new ArgumentException("Document reference must be a valid path.", "documentReference");
            }
            if (!File.Exists(documentReference.Path))
            {
                throw new FileNotFoundException("File not found.", documentReference.Path);
            }
            XmlMSBuildProjectStore xmlMSBuildProjectStore = new XmlMSBuildProjectStore(documentReference)
            {
                document = XDocument.Load(documentReference.Path)
            };

            if (xmlMSBuildProjectStore.document == null)
            {
                return(null);
            }
            return(xmlMSBuildProjectStore);
        }
示例#2
0
        public static IProjectStore CreateInstance(Microsoft.Expression.Framework.Documents.DocumentReference documentReference, IServiceProvider serviceProvider)
        {
            IProjectStore projectStore;

            try
            {
                projectStore = MSBuildBasedProjectStore.CreateInstance(documentReference, serviceProvider);
            }
            catch (InvalidProjectFileException invalidProjectFileException1)
            {
                InvalidProjectFileException invalidProjectFileException = invalidProjectFileException1;
                MigratingMSBuildStore       migratingMSBuildStore       = new MigratingMSBuildStore(documentReference, serviceProvider)
                {
                    LastError   = invalidProjectFileException,
                    NestedStore = XmlMSBuildProjectStore.CreateInstance(documentReference, serviceProvider)
                };
                projectStore = migratingMSBuildStore;
            }
            return(projectStore);
        }