我有一个引用dll的vb.net 3.5应用程序(abc.dll,也在.net 3.5中) 应用程序不时访问此dll。如果在执行期间的任何时候,如果我删除了dll,我希望应用程序在下次尝试使用dll中的类时抛出错误。但是,这不是我看到的行为。如果我在启动之前删除了dll,应用程序会在启动时抛出错误。但不是在启动后删除dll的时候。
这是标准行为,还是我做错了什么? 如果在尝试使用其类时未找到dll,是否可以让应用程序抛出错误?
提前致谢。
答案 0 :(得分:3)
简短的回答没有。加载DLL后,它将被加载,直到使用该DLL的app AppDomain
实例从进程中卸载。只有这样才能删除原始DLL。
更长的答案:
这是一个复杂的问题,因为它取决于DLL如何加载到进程中。有几种不同的方式可以发生
答案 1 :(得分:0)
错误总是在.NET框架尝试加载您引用的程序集时发生。所以看起来由于某种原因CLR决定在你的应用程序的启动时加载程序集。