2011-11-29 108 views
16

我有這樣的大會,由於某些原因的Windows開始從該路徑加載:什麼是緩存AppData Local assembly dl3?

C:\Users\marius\AppData\Local\assembly\dl3\MP6PT6BV.2Z4\GMRQEZL9.LCB\46d762c5\8cf066ff_7eaecc01\X.DLL 

這意味着我做的任何組裝的變化,它的新副本不是從它的輸出文件夾,但是從裝該緩存的文件夾。我嘗試刪除該文件夾,甚至重新啓動Windows,它再次生成並從那裏加載程序集。

那麼,我該如何擺脫它呢?我需要做些什麼來告訴系統從其輸出文件夾而不是從緩存中加載DLL?

+0

這也是即將到來的VS 11中的一個錯誤的原因,可以在這裏看到:http://stackoverflow.com/q/10159828/114029感謝您發佈這個問題! :D –

回答

22

我找到了我的問題的答案。這是Windows註冊表中HKCU \ Software \ Microsoft \ Fusion \ DownloadCacheLocation下指定的.NET框架的「影子副本」文件夾。影子複製是.NET框架中的一項功能,它允許在不卸載應用程序域的情況下更新應用程序域中使用的程序集。有關MSDN http://msdn.microsoft.com/en-us/library/ms404279.aspx中的此功能的更多信息。

我加載程序集的應用程序域被配置爲通過將ShadowCopyFiles屬性設置爲true來複制文件。

+0

那麼......你是怎麼修好的? – Farinha

+0

如果您不想使用該功能,則必須確保「ShadowCopyFiles」爲false。 –

+5

@MariusBancila你如何將它設置爲false?我一直在嘗試各種各樣的方式來做到這一點,而且似乎沒有任何工作。 VS中是否有設置或有其他方法? – Erick