C#程序是一个控制台的示例程序,调用我自己的类库my_class.dll,示例程序第一句就是一个MessageBox,但是也没弹出对话框,根本就还没走到new的那句,程序就出错了。如果把我调用这个类库的语句注释掉,程序就可以运行。这个程序在一些系统上会崩溃。(类库和C#程序都是.NetFramework4.0的)拿之前VS2005写的一样的程序,在这些机器上测试就没问题。在没有安装VS2010环境的机器成测试是下面的情况(测试机器上已经安装了完成.Net Framework 4.0):Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'my_class.dll' or one of its dependencies. 找不到指定的模块。   at Sample.Program.Main(String[] args)

解决方案 »

  1.   

    my_class.dll在exe文件相同的目录下了吗?
      

  2.   

    在同一个目录下,如果找不到my_class.dll报的错是“系统找不到文件”
      

  3.   


    是不是我的my_class.dll在编译的时候需要修改一些编译选项?
    我是直接拿以前的VS2005的工程,用VS2010打开,编译成.net  framework 4.0的
      

  4.   

    如何调用的my_class.dll ,是reference还是reflectin.
      

  5.   

    另外如果my_class.dll依赖于其他assembly,也要copy到同样的目录下。
    因为assembly里有metadata,所有引用的的assembly都在metadata里描述了。
      

  6.   


    就是在引用->添加->浏览找到my_class.dll添加进来的。
      

  7.   


    那有没有办法检查my_class.dll依赖哪些其他的库呢?具体步骤,我是C#菜鸟,麻烦前辈指点一下。
      

  8.   


    在两台有VS2010的机器上可以运行,编译成RELESE版的,拿到没有VS2010环境,只安装了.Net framework 4.0的机器上就不能运行了,就报上面主帖说的错误了。
      

  9.   

    现在比较怪异的就是,只能在有VS2010的开发机器上运行,拿到没有开发环境的机器上,只安装.net framework就出问题,感觉是C#工程在编译的时候,没有设置好,反正my_class.dll里面的构造函数我打印了调试信息,构造函数还没执行,C#程序就出错了。
      

  10.   

    看看项目都引用什么assembly,那些assembly(注意版本)在测试机器上是否存在。
      

  11.   

    还得麻烦您一下,怎么查看assembly呢?我是菜鸟。。是“引用”展开显示的那些东西么?
      

  12.   

    感觉像my_class.dll依赖其他的东西,测试机器上没有,不知道怎么检查
      

  13.   

    vs中,项目下有个reference。所有依赖的assembly都在这里了。
    属性中可以看文件位置,以及版本。