Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 临时AppDomain和文件锁定_C#_.net_Reflection_Appdomain - Fatal编程技术网

C# 临时AppDomain和文件锁定

C# 临时AppDomain和文件锁定,c#,.net,reflection,appdomain,C#,.net,Reflection,Appdomain,我已成功创建了一个从MarshallByRefObject继承的类 上面的类还实现了一个接口,并从主AppDomain远程调用。还创建了DTO来传递信息 我已经在远程类和调用域上通过调试器验证了远程加载的程序集没有加载到主AppDomain中。同样,远程类型/程序集没有流入主AppDomain,而是通过调试监视进入AppDomain.CurrentDomain.GetAssemblys()进行验证 然后,远程/temp域将被卸载 但是,我仍然无法删除远程域中读取的任何dll,我缺少什么 我还试验

我已成功创建了一个从MarshallByRefObject继承的类

上面的类还实现了一个接口,并从主AppDomain远程调用。还创建了DTO来传递信息

我已经在远程类和调用域上通过调试器验证了远程加载的程序集没有加载到主AppDomain中。同样,远程类型/程序集没有流入主AppDomain,而是通过调试监视进入
AppDomain.CurrentDomain.GetAssemblys()
进行验证

然后,远程/temp域将被卸载

但是,我仍然无法删除远程域中读取的任何dll,我缺少什么

我还试验了以下变量:

AppDomain.CurrentDomain.Load(File.ReadAllBytes(_.FullName))


无论我使用哪一个,文件仍然被锁定,即使据我所知,程序集是远程加载和卸载的。

这不应该发生。尝试将每个AppDomain的程序集位置打印到一个文件中,并比较这两个文件以找到交点。
AppDomain.CurrentDomain.Load(File.ReadAllBytes(_.FullName))
Assembly.LoadFrom(_.FullName)