List<string> WriteRefAssembliesRec(ModInfo mi)
        {
            List<string> ret = new List<string>();

            for (int i = 0; i < mi.modReferences.Length; i++)
            {
                // presence of the mod is checked in ModInfo validation
                WriteAssembly(Compiler.modDict[mi.modReferences[i]], Path.GetTempPath() + "\\MCT\\" + mi.modReferences[i] + ".dll");

                ret.Add(Path.GetTempPath() + "\\MCT\\" + mi.modReferences[i] + ".dll");

                ModInfo mi2 = mi.GetModInfoFromTapi(Compiler.modDict[mi.modReferences[i]]);

                if (mi2 != null)
                    ret.AddRange(WriteRefAssembliesRec(mi2));
            }

            return ret;
        }