我正在使用Inno-Setup脚本扩展我的代码,并希望在托管的DLL中以C#最佳实现某些代码。我已经知道如何将托管的DLL中的方法导出为函数,以便在不受管控的进程中使用。这可以通过IL编织来完成,并且有一些工具可以自动化此过程:
我知道托管的程序集不能再从AppDomain中卸载,除非整个AppDomain关闭(进程退出)。但对于不受管控的主机进程意味着什么呢?
有没有更好的方法允许Inno-Setup在加载和使用DLL文件后卸载或删除它?
- NetDllExport (由我编写)
- UnmanagedExports
UnloadDLL(...)
没有效果,并且文件仍然被锁定,直到安装程序退出。由于这个原因,安装程序等待2秒钟,然后无法从临时目录(或安装目录)中删除我的DLL文件。 事实上,它会一直保留在那里,直到有人清理驱动器。我知道托管的程序集不能再从AppDomain中卸载,除非整个AppDomain关闭(进程退出)。但对于不受管控的主机进程意味着什么呢?
有没有更好的方法允许Inno-Setup在加载和使用DLL文件后卸载或删除它?