Assembly.LoadFrom是否保持打开文件句柄?

cla*_*amp 3 c# reflection .net-assembly

我正在使用加载另一个程序集

Assembly.LoadFrom("path.exe");
Run Code Online (Sandbox Code Playgroud)

之后我似乎无法从文件系统中删除该exe.所以我想知道这条路径是否保持打开文件句柄以及我如何关闭它?

Céd*_*non 6

是的,它是打开的,直到从appdomain卸载程序集.

如果确实需要删除该文件,请将其内容加载到内存中.Assembly.Load(byte[])加载程序集的用法:

using (Stream stream = File.OpenRead("path.exe"))
{
    byte[] rawAssembly = new byte[stream.Length];
    stream.Read(rawAssembly, 0, (int)stream.Length);
    Assembly.Load(rawAssembly);
}
Run Code Online (Sandbox Code Playgroud)