在“炼狱装配”会发生什么?
-
19-09-2019 - |
题
在.NET程序集部署到GAC和目标文件被锁定时,Windows拥有它自己所能最好的猜测是某种形式的“装配炼狱” - c:\windows\assembly\temp
使用进程浏览器搜索所述可疑DLL时这些可以很容易地看出:
结果 <子>(来源: alexangas.com ) 子>
当我结束该进程锁定该文件(在这种情况下OWSTIMER.EXE)该神奇部署到GAC正确。
我很好奇,什么样的Windows实际上是在这里做。它怎么知道该文件锁已被释放时?它在哪里保持锁定的文件的记录?它是否从此放弃?
解决方案
和Temp
是tmp
GAC装配安装和卸载期间使用的临时文件夹。 Tmp
用于安装和Temp
用于卸载。
来源: GAC TEMP和TMP 一>
.NET运行时优化服务(mscorsvw.exe
)可能是在一段时间一次探测的文件,以检查是否它们是关闭的,因此它可以[取消]安装挂起组件。
我可能是错的,但据我所知,没有WinAPI的某些文件已关闭/解锁这将通知您。你必须自己来监视他们。但是Windows本身必须在内存中(至少它有打开的句柄的列表)的地方有这样的列表,所以它只是知道该文件被关闭,因为表示文件句柄被释放。
不隶属于 StackOverflow