当一个.NET程序集被部署到GAC并且目标文件被locking时,windows将它保存在我最好猜测的某种“程序集炼狱”中 – c:windowsassemblytemp 。
使用Process Explorer时,可以很容易地看到search可疑的DLL时:
Process Explorer Search http://alexangas.com/blog/wp-content/uploads/2009/07/peasmList.png
只要我结束进程locking文件(在这种情况下是OWSTIMER.EXE),它就会正确地部署到GAC中。
如何在windows 10邮件应用程序中使用附件打开新邮件
windows服务 – 安装2份
通过.Net设置windows进程“评论”?
windows服务日志写入系统关机/重新启动
CustomSettingProvIDer中的空引用仅在某些机器上
我很好奇windows在这里实际上在做什么。 它如何知道文件locking何时被释放? 它在哪里保留locking文件的logging? 它有没有放弃?
从windows服务启动浏览器
你可以从应用程序更改视觉效果性能设置?
了解windows中的AppDomain
C#CultureInfo.GetCultures返回(几乎)空的列表
列出并连接到蓝牙设备
Temp和tmp是GAC程序集安装和卸载过程中使用的临时文件夹。 Tmp用于安装, Temp用于卸载。 来源: GAC Temp和Tmp
.NET运行时优化服务( mscorsvw.exe )可能在一段时间内探查文件,以检查它们是否关闭,以便可以[un]安装未决的程序集。
我可能是错的,但据我所知,没有WinAPI会通知你某个文件已被关闭/解锁。 你必须自己监视它们。 但是windows本身必须在内存中有一个这样的列表(至少它有一个打开的句柄列表),所以它只知道文件是关闭的,因为代表文件的句柄被释放。
总结以上是内存溢出为你收集整理的“assembly炼狱”会发生什么?全部内容,希望文章能够帮你解决“assembly炼狱”会发生什么?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)