Что такое кеш AppData\Local\assembly\dl3?
У меня есть эта сборка, которая по какой-то причине Windows начала загружаться с этого пути:
C:\Users\marius\AppData\Local\assembly\dl3\MP6PT6BV.2Z4\GMRQEZL9.LCB\46d762c5\8cf066ff_7eaecc01\X.DLL
Это означает, что любые изменения, которые я делаю для сборки, новая копия не загружается из выходной папки, а из этой кешированной папки. Я попытался удалить папку, даже перезапустив Windows, она снова создается и сборка загружается оттуда.
Итак, как я могу избавиться от него? Что мне нужно сделать, чтобы сообщить системе загрузить DLL из выходной папки, а не из кеша?
Ответы
Ответ 1
Я нашел ответ на свой вопрос. Это папка "теневой копии" для платформы .NET, как указано в реестре Windows в разделе "HKCU\Software\Microsoft\Fusion\DownloadCacheLocation". Теневое копирование - это функция в платформе .NET, позволяющая обновлять ассембли, используемые в домене приложений, без выгрузки домена приложения. Подробнее об этой функции в MSDN http://msdn.microsoft.com/en-us/library/ms404279.aspx.
В домене приложения, где я загружал сборку, была настроена теневая копия файлов, установив для свойства ShadowCopyFiles
значение true
.