/// Add reference to .NET assembly specified either by filename or by name public Assembly AddReference(string from, string name, bool embed, bool forceLoad, string loadIfStartsWith) { bool add = true; foreach (var r in _references) { if (!string.IsNullOrEmpty(from) && r.From == from) { if (!forceLoad) return null; add = false; } if (!string.IsNullOrEmpty(name) && r.Name == name) { if (!forceLoad) return null; add = false; } } var rNew = new Ref { From = from, Name = name, Embed = embed }; if (add) _references.Add(rNew); foreach (var a in AppDomain.CurrentDomain.GetAssemblies()) { if (!string.IsNullOrEmpty(name) && a.FullName == name) return a; } if (forceLoad) return rNew.ForceLoad(_verboseWriter); if (loadIfStartsWith!=null) _notLoadedReferences.Add(rNew, loadIfStartsWith); return null; }