我最近发现可以通过重命名文件然后执行复制来复制正在使用的程序集。例如
C:\Folder\MyLibrary.dll
=> rename to C:\Folder\MyLibrary.dll_old
=> copy new version C:\Folder\MyLibrary.dll (v2.0)
我被告知下次应用程序启动时,它将加载这个新程序集。当应用程序继续运行时,它将继续使用旧程序集(即使它已重命名为 _old)。
对我来说似乎是一个 hack。以这种方式更新程序集安全吗?
最佳答案
很安全。只要旧程序集保持加载状态,同一个应用程序域就不会尝试再次加载它。文件名对于应用程序的继续执行并不重要。
但是,在生产使用中,您可能不得不考虑 3 个以上的同时版本和最终删除未使用文件的机制。
关于c# - 重命名和复制程序集是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11319735/