I have this assembly that for some reason Windows started to load from this path:
C:\Users\marius\AppData\Local\assembly\dl3\MP6PT6BV.2Z4\GMRQEZL9.LCB\46d762c5\8cf066ff_7eaecc01\X.DLL
That means whatever changes I do to the assembly, the new copy of it isn't loaded from its output folder but from that cached folder. I tried deleting the folder, even restarting Windows, it is generated again and the assembly loaded from there.
So, how can I get rid of it? What do I have to do to tell the system to load the DLL from its output folder and not from the cache?
I found the answer to my question. That is the "shadow copy" folder for the .NET framework as specified in Windows Registry under HKCU\Software\Microsoft\Fusion\DownloadCacheLocation. Shadow copying is a feature in the .NET framework to allow assemblies used in an app domain to be updated without unloading the app domain. More about this feature in MSDN http://msdn.microsoft.com/en-us/library/ms404279.aspx.
The app domain where I was loading the assembly was configured to shadow copy files, by setting the ShadowCopyFiles
property to true
.