Beispiel #1
0
        public static Uri CompileToFile(Uri hFilePath)
        {
            CompilerResults compilerResults = ProjectCompile._Compile(hFilePath, false, (string)null);

            if (compilerResults == null)
            {
                return((Uri)null);
            }
            return(new Uri(compilerResults.PathToAssembly));
        }
Beispiel #2
0
        public static Assembly CompileToAssembly(Uri hFilePath)
        {
            CompilerResults compilerResults = ProjectCompile._Compile(hFilePath, true, (string)null);

            if (compilerResults == null)
            {
                return((Assembly)null);
            }
            return(compilerResults.CompiledAssembly);
        }
Beispiel #3
0
 private static bool _CompileItemGroup(Uri hFilePath, XElement hDocumentRoot, List <string> hResultingFiles, StringCollection hResultingReferences, StringCollection hResultingResources)
 {
     foreach (XElement xelement1 in Enumerable.Where <XElement>(hDocumentRoot.Elements(), (Func <XElement, bool>)(xelement_0 =>
     {
         if (xelement_0.HasElements)
         {
             return(xelement_0.Name.LocalName.Equals("ItemGroup"));
         }
         return(false);
     })))
     {
         IEnumerable <XElement> enumerable1 = Enumerable.Where <XElement>(xelement1.Elements(), (Func <XElement, bool>)(xelement_0 =>
         {
             if (xelement_0.HasAttributes && xelement_0.Name.LocalName.Equals("Compile"))
             {
                 return(xelement_0.Attribute((XName)"Include") != null);
             }
             return(false);
         }));
         IEnumerable <XElement> enumerable2 = Enumerable.Where <XElement>(xelement1.Elements(), (Func <XElement, bool>)(xelement_0 =>
         {
             if (xelement_0.HasAttributes && xelement_0.Name.LocalName.Equals("EmbeddedResource"))
             {
                 return(xelement_0.Attribute((XName)"Include") != null);
             }
             return(false);
         }));
         IEnumerable <XElement> enumerable3 = Enumerable.Where <XElement>(xelement1.Elements(), (Func <XElement, bool>)(xelement_0 =>
         {
             if (xelement_0.HasAttributes && xelement_0.Name.LocalName.Equals("ProjectReference"))
             {
                 return(xelement_0.Attribute((XName)"Include") != null);
             }
             return(false);
         }));
         IEnumerable <XElement> enumerable4 = Enumerable.Where <XElement>(xelement1.Elements(), (Func <XElement, bool>)(xelement_0 =>
         {
             if (xelement_0.HasAttributes && xelement_0.Name.LocalName.Equals("Reference"))
             {
                 return(xelement_0.Attribute((XName)"Include") != null);
             }
             return(false);
         }));
         foreach (XElement xelement2 in enumerable1)
         {
             Uri uri = new Uri(hFilePath, xelement2.Attribute((XName)"Include").Value);
             if (!File.Exists(uri.LocalPath))
             {
                 return(false);
             }
             hResultingFiles.Add(uri.LocalPath);
         }
         foreach (XElement xelement2 in enumerable2)
         {
             Uri uri = new Uri(hFilePath, xelement2.Attribute((XName)"Include").Value);
             if (!File.Exists(uri.LocalPath))
             {
                 return(false);
             }
             hResultingResources.Add(uri.LocalPath);
         }
         foreach (XElement xelement2 in enumerable3)
         {
             XElement        xelement3       = Enumerable.SingleOrDefault <XElement>(xelement2.Elements(), (Func <XElement, bool>)(xelement_0 => xelement_0.Name.LocalName.Equals("Project")));
             CompilerResults compilerResults = ProjectCompile._Compile(new Uri(hFilePath, xelement2.Attribute((XName)"Include").Value), false, xelement3 == null ? (string)null : xelement3.Value);
             if (compilerResults == null)
             {
                 return(false);
             }
             hResultingReferences.Add(compilerResults.PathToAssembly);
         }
         foreach (XElement xelement2 in enumerable4)
         {
             if (xelement2.HasElements)
             {
                 bool flag = false;
                 foreach (XElement xelement3 in xelement2.Elements())
                 {
                     if (xelement3.Name.LocalName.Equals("SpecificVersion"))
                     {
                         flag = xelement3.Value.Equals("True", StringComparison.CurrentCultureIgnoreCase);
                     }
                 }
                 foreach (XElement xelement3 in xelement2.Elements())
                 {
                     if (xelement3.Name.LocalName.Equals("HintPath"))
                     {
                         Uri uri = new Uri(hFilePath, xelement3.Value);
                         if (!File.Exists(uri.LocalPath))
                         {
                             return(false);
                         }
                         if (flag)
                         {
                             Assembly assembly = Assembly.ReflectionOnlyLoadFrom(uri.LocalPath);
                             if (!xelement2.Attribute((XName)"Include").Value.Equals(string.Format("{0}, processorArchitecture={1}", (object)Regex.Replace(assembly.FullName, "(.*), PublicKeyToken=(.*)", "$1"), (object)assembly.GetName().ProcessorArchitecture)))
                             {
                                 return(false);
                             }
                         }
                         hResultingReferences.Add(uri.LocalPath);
                         break;
                     }
                 }
             }
             else
             {
                 hResultingReferences.Add(string.Format("{0}.dll", (object)xelement2.Attribute((XName)"Include").Value));
             }
         }
     }
     return(true);
 }