调用类库的C#工程离开VS2010开发环境就不能运行

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)

作者: youngbug   发布时间: 2011-06-16

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

作者: findcaiyzh   发布时间: 2011-06-16

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

作者: youngbug   发布时间: 2011-06-16

引用 1 楼 findcaiyzh 的回复:

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


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

作者: youngbug   发布时间: 2011-06-16

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

作者: findcaiyzh   发布时间: 2011-06-16

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

作者: findcaiyzh   发布时间: 2011-06-16

引用 4 楼 findcaiyzh 的回复:

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


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

作者: youngbug   发布时间: 2011-06-16

引用 5 楼 findcaiyzh 的回复:

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


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

作者: youngbug   发布时间: 2011-06-16

你自己的机器上能运行吗?

作者: findcaiyzh   发布时间: 2011-06-16

引用 8 楼 findcaiyzh 的回复:

你自己的机器上能运行吗?


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

作者: youngbug   发布时间: 2011-06-16