none
VS 2008 设计时出现未能加载文件或程序集错误 RRS feed

  • 问题

  • 项目结果:

    项目C(程序) 引用项目 B(控件)和项目A(一些操作类)

    项目B 引用项目 A

    VS2008一启动的时候就自动打开项目C中的一个窗体,启动后该窗体设计时显示未能加载文件或程序集(项目A),编译和运行都不会出错。

            把该窗体设计关闭,重新从解决方案资源管理器中打开该窗体设计就不会出错。

            或者,启动VS的时候所有的设计窗体全部关闭,等VS启动完成后再从解决方案资源管理器中打开该窗体设计就不会出错。

    错误如下:

    

    等VS2008启动之后,重新打开该窗体就没有问题:


    dog


    • 已编辑 pcodg 2015年6月1日 5:46 修改,增加说明
    2015年6月1日 5:45

答案

  • 原因找到了。

    --项目1   类库

    --项目2   控件

    --项目3   应用程序

    项目2引用项目1,项目3引用项目2和项目1

    项目1  中有个方法:
    static Form GetParentForm(this Control c){}
    项目2 中的控件
    override OnLoad()
    {
            if(!DesignMode)
    {
    Form f=this.GetParentForm();
    }
    }
    估计原因可能是因为在加载窗体的时候 项目1中的类未能初始化导致。


    dog

    • 已标记为答案 pcodg 2015年6月3日 9:14
    2015年6月3日 9:14

全部回复

  • 你好,

    你能不能共享一下详细的error,好像被你用黑色标记挡住了。

    >>未能加载文件或程序集。。。。。。

    一般这种错误信息可能是你项目引用的程序集不存在,或者你加载了错误的/旧的版本。你要确定它是否真的存在并加载了正确的版本。

    还有一种可能是和.NET Framework 或者 Target platforum(AnyCPU/X86/X64)有关,因为你有多个项目之间穿插着引用,你要保证他们用了同样的.NET版本等等。

    希望能帮到你!


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2015年6月2日 8:09
    版主
  • 解决方案中有4、5个项目,都是自己写的,引用的时候直接引用的项目,而不是引用的dll

    解决方案

    --项目1   类库

    --项目2   控件

    --项目3   应用程序

    项目2引用项目1,项目3引用项目2和项目1

    操作:

    项目3打开一个窗体进行设计,用到了项目2的控件,也用到的项目1中的类

    当关闭解决方案前未将所有窗口设计全部关闭,下次打开该解决方案的时候,VS2008将会自动加载所有未关闭的窗口,对于自动打开的设计窗口,最先加载的第一个设计窗口会提示未能加载文件或程序集。关闭这个提示错误的设计窗口,重新手动打开一下就好了。



    dog

    2015年6月3日 4:20
  • PDB文件也都删除过,也清理过解决方案重新生成过,也尝试过编译为AnyCpu/X86,都不行。

    dog

    2015年6月3日 4:21
  • 原因找到了。

    --项目1   类库

    --项目2   控件

    --项目3   应用程序

    项目2引用项目1,项目3引用项目2和项目1

    项目1  中有个方法:
    static Form GetParentForm(this Control c){}
    项目2 中的控件
    override OnLoad()
    {
            if(!DesignMode)
    {
    Form f=this.GetParentForm();
    }
    }
    估计原因可能是因为在加载窗体的时候 项目1中的类未能初始化导致。


    dog

    • 已标记为答案 pcodg 2015年6月3日 9:14
    2015年6月3日 9:14