static void GetExtraAssemblies (CompilerParameters options)
{
StringCollection refAsm = options.ReferencedAssemblies;
string asmLocation;
string asmName;
ArrayList al = WebConfigurationManager.ExtraAssemblies;
if (al != null && al.Count > 0) {
foreach (object o in al) {
asmName = o as string;
if (asmName != null && !refAsm.Contains (asmName))
refAsm.Add (asmName);
}
}
Assembly asm;
IList list = BuildManager.CodeAssemblies;
if (list != null && list.Count > 0) {
foreach (object o in list) {
asm = o as Assembly;
if (asm == null)
continue;
asmName = asm.Location;
if (asmName != null && !refAsm.Contains (asmName))
refAsm.Add (asmName);
}
}
list = BuildManager.TopLevelAssemblies;
if (list != null && list.Count > 0) {
foreach (object o in list) {
asm = o as Assembly;
if (o == null)
continue;
asmName = asm.Location;
if (!refAsm.Contains (asmName))
refAsm.Add (asmName);
}
}
CompilationSection cfg = WebConfigurationManager.GetWebApplicationSection ("system.web/compilation") as CompilationSection;
AssemblyCollection asmcoll = cfg != null ? cfg.Assemblies : null;
if (asmcoll == null)
return;
foreach (AssemblyInfo ai in asmcoll) {
asmLocation = GetAssemblyLocationFromName (ai.Assembly);
if (asmLocation == null || refAsm.Contains (asmLocation))
continue;
refAsm.Add (asmLocation);
}
}