首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从SxS缓存中删除卸载的DLL

如何从SxS缓存中删除卸载的DLL
EN

Stack Overflow用户
提问于 2011-08-06 02:10:54
回答 1查看 2.7K关注 0票数 1

我有VS 2008。我升级到VS2010,并卸载了VS2008。

我有一个测试在我的机器上运行,但在构建实验室的机器上加载失败。经过一些调试之后,我意识到测试可执行文件仍然依赖于msvcr90d.dll (这是一个VC++ 2008调试运行时库)。即使我已经卸载了VS2008,测试仍然可以在我的机器上运行,因为运行时DLL仍然存在于并行缓存(%windir%/winsxs)中。build lab机器没有DLL,因此不会在那里加载。

卸载VS2008不应该导致所有的运行时DLL从并行缓存中删除吗?

有没有办法手动从并排缓存中删除这些旧的DLL?我希望能够很容易地检测到我可能仍然有过期依赖的其他地方。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-06 07:10:10

您首先需要取得包含文件夹的所有权。那里的所有文件夹将归SYSTEM或TrustedInstaller所有。所以要这样做:

右键单击->属性->安全选项卡->高级->所有者选项卡->编辑->选择您自己作为所有者->勾选‘替换子容器和对象上的所有者->确定

完成后,您可以右键单击->属性->安全选项卡->让您自己完全控制->确定

或者,如果您熟悉cacls命令,则可以从命令行执行此操作。

一旦你有了完全的控制权,你可以移动文件夹,我强烈建议这样做,而不是删除它。从winsxs中删除文件可能会破坏其他应用程序,甚至Windows。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6960759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档