我有一个vb.net 3.5应用程序引用一个DLL(abc.dll,也在.net 3.5中) 这个DLL是由应用程序不时访问。如果在执行过程中的任何时候,如果我删除了dll,我希望应用程序在下次尝试使用dll中的类时发生错误。但是,这不是我所看到的行为。如果我在启动前删除了dll,应用程序在启动时会引发错误。但不是当启动后删除dll时。参考被删除时会发生什么?
这是标准行为,还是我做错了什么? 如果在尝试使用类时未找到dll,是否可以让应用程序抛出错误?
在此先感谢。
我有一个vb.net 3.5应用程序引用一个DLL(abc.dll,也在.net 3.5中) 这个DLL是由应用程序不时访问。如果在执行过程中的任何时候,如果我删除了dll,我希望应用程序在下次尝试使用dll中的类时发生错误。但是,这不是我所看到的行为。如果我在启动前删除了dll,应用程序在启动时会引发错误。但不是当启动后删除dll时。参考被删除时会发生什么?
这是标准行为,还是我做错了什么? 如果在尝试使用类时未找到dll,是否可以让应用程序抛出错误?
在此先感谢。
简答题没有。一旦DLL被加载,它就会被加载,直到使用该DLL的应用程序0123'从进程中卸载。只有这样你才能删除原始的DLL。
较长的答案:
这是一个复杂的问题,因为它取决于DLL是如何被加载到进程。有几种不同的方式可以发生这种情况
错误总是发生在.NET框架尝试加载引用的程序集时。所以看起来CLR决定在应用程序启动时加载程序集。
这是一个桌面应用程序 – Apeksha 2010-03-12 17:14:41
是否要删除启动错误,并且如果使用了错误,或者*还有*如果程序集被删除时发生错误? – 2010-03-12 17:26:00