VS2005的bug还是多...今天又被我找着一个.
在今天写的另一篇文章 http://forums.asp.net/thread/1121085.aspx)查看.看完之后茅塞顿开.
PS:这个问题只在web项目中可能出现,原因下面将解释.
这个问题最常出现在使用ThirdParty组件的时候,我的也同样是这时出的问题,Asp.Net Team的官方解决方案如下:
首先需要确认你引用了哪些组件,那些是托管的,哪些是非托管的.托管的很好办,直接被使用的需要引用,间接使用的需要拷贝到bin目录下.非托管的处理会比较麻烦.实际上,你拷贝到bin没有任何帮助,因为CLR会把文件拷贝到一个临时目录下,然后在那运行web,而CLR只会拷贝托管文件,这就是为什么我们明明把非托管的dll放在了bin下却依然提示不能加载模块了.
具体做法如下:
首先我们在服务器上随便找个地方新建一个目录,假如为C:\DLL
然后,在环境变量中,给Path变量添加这个目录
最后,把所有的非托管文件都拷贝到C:\DLL中.
OK,去运行吧,没问题了吧?(注意,运行之前,需要重启VS,如果使用IIS,那就需要重启IIS)
嗯,其实这并不是什么官方做法,实在是现在的情况下,只能如此处理而已,据说该bug已经被提交到CLR Team了,希望微软能针对这个问题尽快推出补丁.