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