2010-04-30 60 views
2

现在,我试图将一组不断变化的类分离到它们自己的dll中,并使用MEF动态加载它们。我的问题是,每当我尝试覆盖DLL而应用程序正在运行,它说它正在使用。在MEF中覆盖dll

是否有无论如何配置MEF让我覆盖DLL并拿起应用程序仍在运行时的变化?

回答

4

这不是一个MEF问题 - 它是你的appdomain标准设置,锁定DLL的触摸。检查http://www.vistax64.com/powershell/26164-reflection-assembly-loadfile-locks-file.html是否有涉及MEF的类似问题。对于在AppDomain影拷贝机制)

检查http://bartdesmet.net/blogs/bart/archive/2006/07/29/4146.aspx;

基本上没有对dll的运行,先构建一个备份和复制工作)

+0

我很困惑在这里 - 你说MEF是ShadowCopy链接中描述的情况的错误工具? (我正在做一个Windows服务)。我认为它是精确开发的,所以你可以在不停止应用程序的情况下替换dll。 – 2016-02-16 17:21:12

+0

MEF - 识别后 - 使用AppDomain的标准设置加载程序集。如果AppDomain未配置为使用卷影副本,则不会使用卷影副本。 – TomTom 2016-02-16 17:25:21

2

嫌疑人如果您完全卸载当前引用该DLL的任何AppDomain它将工作。