使用 System.AddIn,有没有办法在不锁定 .dll 文件的情况下加载和激活 AddIn?我想删除或覆盖该文件以加载我的 AddIn 的新版本。
目前解锁文件的唯一方法是关闭插件。但我需要让它在来电时始终保持活动状态(异步服务,是的,一场噩梦)。
或者也许还有另一种在运行时更新插件的方法,但我做得不对。我想知道这可能是正确的方法。谢谢!
使用 System.AddIn,有没有办法在不锁定 .dll 文件的情况下加载和激活 AddIn?我想删除或覆盖该文件以加载我的 AddIn 的新版本。
目前解锁文件的唯一方法是关闭插件。但我需要让它在来电时始终保持活动状态(异步服务,是的,一场噩梦)。
或者也许还有另一种在运行时更新插件的方法,但我做得不对。我想知道这可能是正确的方法。谢谢!
System.AppDomain 类的 ShadowCopy 功能怎么样?
我还没有尝试过,但您可以尝试以下方法:
您可以在此处找到有关卷影复制的更多信息。另请阅读CodePlex的System.AddIn 工具和示例页面上的此线程。
加载新版本后,您希望移交如何工作?
听起来您需要两个加载项:一个(您永远不会更改)仅用于接收和缓冲传入呼叫,另一个(您确实更改)来处理这些呼叫。然后您可以关闭并升级处理加载项。同时,消息接收插件可以缓冲异步调用,直到新版本的处理插件启动并运行。