打开"C:\WINDOWS\assembly"文件夹,查看有没有名称为"mscorlib"、版本号、公钥标记与配置节中的Version、PublicKeyToken值一致的程序集,如果没有,将"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\"下的mscorlib.dll拖动到C:\WINDOWS\assembly中,这时C:\WINDOWS\assembly下会生成一个新的mscorlib程序集(如果没有以上版本程序集的话),做完之后重新运行你的程序就不会出现这个问题了。
当然以上是我的解决办法,原因是非法关闭vs导致程序集丢失。