本帖最后由 mpy2003 于 2013-11-24 23:45:42 编辑

解决方案 »

  1.   

    曾经遇到过.有类似SVN的东西重新来一次?
      

  2.   

    调试下程序,看看为什么path会返回Windows
    显然应该是WindowsApp才对。
      

  3.   

    大哥,我调试的时候文件名是改不了的,所以调试的时候一直是WindowsApp,也不会出现错误。但是调试后生成的WindowsApp.exe修改名字为Windows.exe运行就会出现错误
      

  4.   


    Debug一下就可以了吧,运行改名后的exe,用Attach to process进行调试。
      

  5.   

    看了,代码修改起来不算太难:public static void CreateForm(string filePath,  string strName, string namespaceName, Form MdiParentForm)
            {
                int Index = strName.LastIndexOf(".");
                string formName = strName.Substring(Index + 1);
                if (!ShowChildForm(formName, MdiParentForm))
                {
                    string path = namespaceName;
                    string name = strName;
                    Assembly assembly = Assembly.LoadFrom(filePath);
                    Form fr = (Form)assembly.CreateInstance(name);
                    fr.MdiParent = MdiParentForm;
                    fr.Width = 1040;
                    fr.Height = 755;
                    fr.FormBorderStyle = FormBorderStyle.None;
                    fr.StartPosition = FormStartPosition.Manual;
                    fr.Show();
                }
            }调用的时候                if (this.TOOLS.SelectedNode.Name == "Work")
                    {
                        CreateForm(Application.ExecutablePath,"WindowsApp" + "." + Program.userGroup, "WindowsApp", this);
                    }
                    else
                    {
                        CreateForm(Application.ExecutablePath,"WindowsApp" + "." + this.TOOLS.SelectedNode.Name, "WindowsApp", this);
                    }
    原理是,你虽然改了exe文件的名字,但是assembly内部的自描述的manifest没有修改,manifest描述了assembly name等,Load是使用的assembly name,依旧是WindowsApp,修改成使用LoadFrom,从文件路径载入assembly。命名空间也依旧是WindowsApp,不随着你修改的文件名而改动。