現在,我試圖將一組不斷變化的類分離到它們自己的dll中,並使用MEF動態加載它們。我的問題是,每當我嘗試覆蓋DLL而應用程序正在運行,它說它正在使用。在MEF中覆蓋dll
是否有無論如何配置MEF讓我覆蓋DLL並拿起應用程序仍在運行時的變化?
現在,我試圖將一組不斷變化的類分離到它們自己的dll中,並使用MEF動態加載它們。我的問題是,每當我嘗試覆蓋DLL而應用程序正在運行,它說它正在使用。在MEF中覆蓋dll
是否有無論如何配置MEF讓我覆蓋DLL並拿起應用程序仍在運行時的變化?
這不是一個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的運行,先構建一個備份和複製工作)
我嫌疑人如果您完全卸載當前引用該DLL的任何AppDomain
它將工作。
我很困惑在這裏 - 你說MEF是ShadowCopy鏈接中描述的情況的錯誤工具? (我正在做一個Windows服務)。我認爲它是精確開發的,所以你可以在不停止應用程序的情況下替換dll。 – 2016-02-16 17:21:12
MEF - 識別後 - 使用AppDomain的標準設置加載程序集。如果AppDomain未配置爲使用卷影副本,則不會使用卷影副本。 – TomTom 2016-02-16 17:25:21