assembly.getTypes()
-
26-10-2019 - |
题
我的代码中有这个:
Assembly assembly = Assembly.LoadFile(dllFile);
//dllFile has the correct value of a path of a .dll file
foreach (Type type in assembly.GetTypes()) {...}
当我调试程序时,一切正常。当我为程序创建EXE时,代码将用于assembly.getTypes()并停止执行。当我与使用EXE时调试时,什么可能导致assembly.getTypes()的工作方式不同?
解决方案
看看此链接:
您切勿使用assembly.loadfile()。使用loadfrom()如果知道组件的位置,请使用load()让.NET弄清楚组件的位置。使用load()应该是您的偏好
归功于 @hanspassant
其他提示
创建EXE文件时,必须确保您的组件位于正确的文件夹中,并且EXE文件可以访问该文件夹。
您可以订阅该事件并进行简单 Assembly.LoadFrom
从您已知的位置,甚至根据您的某些系统进行自己的精美负载。也有 TypeResolve
和 ResourceResolve
事件中的事件 AppDomain
这使您可以处理解决一个方面的各个方面 AppDomain
. 。有关详细信息,请参见此 Microsoft论坛线程.
不隶属于 StackOverflow