我有这个程序集,由于某种原因,Windows开始从此路径加载:
C:\Users\marius\AppData\Local\assembly\dl3\MP6PT6BV.2Z4\GMRQEZL9.LCB\46d762c5\8cf066ff_7eaecc01\X.DLL
这意味着无论我对程序集进行什么更改,它的新副本都不会从其输出文件夹中加载,而是从该缓存文件夹中加载。我尝试删除该文件夹,甚至重新启动Windows,它会再次生成并从那里加载程序集。
那么,我该如何摆脱呢?我该怎么做才能告诉系统从其输出文件夹而不是从缓存加载DLL?
最佳答案
我找到了问题的答案。这是Windows注册表中HKCU \ Software \ Microsoft \ Fusion \ DownloadCacheLocation下指定的.NET框架的“卷影副本”文件夹。卷影复制是.NET框架中的一项功能,它允许在不卸载应用程序域的情况下更新应用程序域中使用的程序集。有关MSDN http://msdn.microsoft.com/en-us/library/ms404279.aspx中此功能的更多信息。
通过将ShadowCopyFiles
属性设置为true
,将我要加载程序集的应用程序域配置为卷影副本文件。
关于.net - 什么是缓存AppData\Local\assembly\dl3?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8309411/