Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我最近发现可以通过重命名文件然后执行复制来复制正在使用的程序集。例如
C:\Folder\MyLibrary.dll => 重命名为 C:\Folder\MyLibrary.dll_old => 复制新版本 C:\Folder\MyLibrary.dll (v2.0)
有人告诉我,下次应用程序启动时,它将加载这个新程序集。当应用程序继续运行时,它将继续使用旧程序集(即使它已重命名为 _old)。
对我来说似乎是一个黑客。以这种方式更新程序集是否安全?
这是安全的。只要旧程序集保持加载状态,同一个应用程序域就不会尝试再次加载它。文件名对于应用程序的继续执行并不重要。
但是,在生产使用中,您可能必须考虑 3 个以上的同步版本以及最终删除未使用文件的机制。