.net - 什么是缓存AppData\Local\assembly\dl3?

标签 .net caching .net-assembly

我有这个程序集,由于某种原因,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/

相关文章:

c# - 如何以编程方式获取所有 .NET 程序集的列表?

.net - "Value does not fall within expected range"在运行时错误中是什么意思?

c# - 必须将单个字符串传递给多个正则表达式模式,并且在匹配时我想要匹配的值

.net - .Net/Visual Studio 是否支持非英语文化的外语关键字?

asp.net-mvc - 将缓存对象公开给 View 的最佳方法

npm - 无法识别 Azure Pipelines 缓存任务和 ng

C# 不能跨程序集边界使用,因为它的泛型类型参数是嵌入式互操作类型

c# - c# 中的 Environment.SpecialFolder.CommonStartMenu 和 Environment.SpecialFolder.StartMenu 有什么区别?

java - Spring启动2.0.0.RELEASE java.lang.ClassNotFoundException : org. springframework.aop.framework.AopProxyUtils

c# - 如何动态加载程序集到当前应用程序域到c#项目?