Some weird issues arise after switching from unity3.5 to unity4.1.3.
With some trial & errors, finally I found a workaround, just skip referencing Mono.Cecil & UnityEditor, and it will be okay.
I post my code(modified) below in case someone is interested.
using UnityEngine;
using System.Collections;
using System;
using Mono.CSharp;
public class CmdConsole : MonoBehaviour/*Singleton<CmdConsole>*/
{
public KeyCode[] m_ShortcutKeys = new KeyCode[]{KeyCode.LeftAlt, KeyCode.F12}; //the keys used to open Console;
public bool m_IsConsoleOpen = false;
private string m_editstr = "";
private string m_result = "";
private int m_cmdId = 0; //used to identify cmd
// Use this for initialization
void Start () {
Mono.CSharp.Evaluator.Init(new string[] { });
foreach (System.Reflection.Assembly assembly in AppDomain.CurrentDomain.GetAssemblies())
{
//Dbg.Log("refer: {0}", assembly.FullName);
if( assembly.FullName.Contains("Cecil") || assembly.FullName.Contains("UnityEditor") )
continue;
Mono.CSharp.Evaluator.ReferenceAssembly(assembly);
}
Evaluator.Run ("using UnityEngine;