在使用LoadFile方法加载dll文件后,该dll文件将被锁定,因此无法直接删除。可以尝试在加载dll文件后使用AppDomain.Unload方法卸载加载的程序集,然后再删除该dll文件。以下是一个示例代码:

string filePath = "path_to_dll_file.dll";

// 加载dll文件
Assembly assembly = Assembly.LoadFile(filePath);

// 卸载程序集
AppDomain.CurrentDomain.GetAssemblies()
    .Where(a => a.FullName.StartsWith(assembly.FullName.Split(',')[0]))
    .ToList()
    .ForEach(a => AppDomain.CurrentDomain.Load(a.FullName));

// 删除dll文件
File.Delete(filePath);

请注意,这段代码需要在具有足够权限的上下文中运行,否则将会出现访问被拒绝的错误。

C# WPF 在使用LoadFile读取dll文件中的内容后 删除该dll 访问被拒绝

原文地址: https://www.cveoy.top/t/topic/hPWb 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录