异常来自 HRESULT:0x80131040 System.IO.FileLoadException: 本帖最后由 mpy2003 于 2013-11-24 23:45:42 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 曾经遇到过.有类似SVN的东西重新来一次? 调试下程序,看看为什么path会返回Windows显然应该是WindowsApp才对。 大哥,我调试的时候文件名是改不了的,所以调试的时候一直是WindowsApp,也不会出现错误。但是调试后生成的WindowsApp.exe修改名字为Windows.exe运行就会出现错误 Debug一下就可以了吧,运行改名后的exe,用Attach to process进行调试。 看了,代码修改起来不算太难: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,不随着你修改的文件名而改动。 导出Excel异常,HRESULT:0x800A03EC C# 在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke 多线程问题 求购微软MCTS--Exam 70–536全套4本教材 关于数组的定义和存取问题高手低手来抢分!! 关于datagird中取值的问题!很急啊!!分不够再给!!!! 请教一下VB.NET如何顺利向C#过渡 查看数据库连接? 一个文件编码的问题,急急急 如何遍历XML中的某一个节点? 这种格式的XML怎么序列化? 调试生成的文件改名后运行遇到的问题
显然应该是WindowsApp才对。
Debug一下就可以了吧,运行改名后的exe,用Attach to process进行调试。
{
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,不随着你修改的文件名而改动。